При использовании JSQMessagesViewController в DetailView в UISplitViewController, KeyBoardToolBar должен появиться в DetailViewController толькоПри использовании JSQMessagesViewController в DetailView в UISplitviewCOntroller, KeyBoardToolBar должен появиться в DetailViewController только
ответ
поздно ответ ...
, если вы хотите уменьшить inputToolbar
, вам необходимо создать подкласс JSQMessagesToolbarContentView
и предоставить вам собственное представление для содержимого панели инструментов.
ниже я привожу образец пример, создать subcalss из JSQMessagesToolbarContentView
назвать его как JSQMessagesToolbarContentView_custom
в subcalss добавить ниже код,
#import "JSQMessagesToolbarContentView.h"
@interface JSQMessagesToolbarContentView_custom : JSQMessagesToolbarContentView
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *holderViewLeadingConstraint;
@end
и в JSQMessagesToolbarContentView_custom.m
файле,
#import "UIView+JSQMessages.h"
#import "JSQMessagesToolbarContentView_custom.h"
@implementation JSQMessagesToolbarContentView_custom
+ (UINib *)nib
{
return [UINib nibWithNibName:NSStringFromClass([JSQMessagesToolbarContentView_custom class])
bundle:[NSBundle bundleForClass:[JSQMessagesToolbarContentView_custom class]]];
}
#pragma mark - Initialization
- (void)awakeFromNib
{
[super awakeFromNib];
[self setTranslatesAutoresizingMaskIntoConstraints:NO];
self.backgroundColor = [UIColor clearColor];
}
//below method will place the contentview to desired position
- (void)layoutSubviews
{
[super layoutSubviews];
self.holderViewLeadingConstraint.constant = 320;
}
#pragma mark - Setters
- (void)setBackgroundColor:(UIColor *)backgroundColor
{
[super setBackgroundColor:backgroundColor];
self.leftBarButtonContainerView.backgroundColor = backgroundColor;
self.rightBarButtonContainerView.backgroundColor = backgroundColor;
}
- (void)setLeftBarButtonItem:(UIButton *)leftBarButtonItem
{
[super setLeftBarButtonItem:leftBarButtonItem];
}
- (void)setLeftBarButtonItemWidth:(CGFloat)leftBarButtonItemWidth
{
// self.leftBarButtonContainerViewWidthConstraint.constant = leftBarButtonItemWidth;
[self setNeedsUpdateConstraints];
}
- (void)setRightBarButtonItem:(UIButton *)rightBarButtonItem
{
[super setRightBarButtonItem:rightBarButtonItem];
}
- (void)setRightBarButtonItemWidth:(CGFloat)rightBarButtonItemWidth
{
// self.rightBarButtonContainerViewWidthConstraint.constant = rightBarButtonItemWidth;
[self setNeedsUpdateConstraints];
}
- (void)setRightContentPadding:(CGFloat)rightContentPadding
{
// self.rightHorizontalSpacingConstraint.constant = rightContentPadding;
[self setNeedsUpdateConstraints];
}
- (void)setLeftContentPadding:(CGFloat)leftContentPadding
{
// self.leftHorizontalSpacingConstraint.constant = leftContentPadding;
[self setNeedsUpdateConstraints];
}
#pragma mark - UIView overrides
- (void)setNeedsDisplay
{
[super setNeedsDisplay];
[self.textView setNeedsDisplay];
}
//return the custom view that we are going to create next
- (JSQMessagesToolbarContentView_custom *)loadToolbarContentView
{
NSArray *nibViews = [[NSBundle bundleForClass:[JSQMessagesToolbarContentView_custom class]] loadNibNamed:NSStringFromClass([JSQMessagesToolbarContentView_custom class]) owner:nil options:nil];
return nibViews.firstObject;
}
после этого вы необходимо создать новое имя .xib
имя файла JSQMessagesToolbarContentView_custom.xib
Этот файл содержит наш небольшой просмотр содержимого для inputToolbar
и, что еще важнее, установить соединения, демонстрационный пример и также установить имя класса вида на JSQMessagesToolbarContentView_custom
. слышать, я могу только добавить изображение пользовательского представления.
Теперь создать выход для ведущего ограничения, чтобы уменьшить размер представления контента, как дать ниже,
и добавить ограничения на выходе в качестве приведенных в демоверсии. поэтому, если вы добавите некоторые constrians без изменения базового класса, он даст ошибку или ошибку времени выполнения, поэтому отредактируйте базовый класс также
теперь перейдите к JSQMessagesToolbarContentView.h
и добавьте форму свойств дутья JSQMessagesToolbarContentView.m
, просто вырезайте и пройдите мимо и сделайте ее общедоступной.
@interface JSQMessagesToolbarContentView : UIView
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *leftBarButtonContainerViewWidthConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *rightBarButtonContainerViewWidthConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *leftHorizontalSpacingConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *rightHorizontalSpacingConstraint;
//...rest of the code
сейчас в файле JSQMessagesInputToolbar.m
, для того, чтобы сделать бар инструмента прозрачным для половины SPLITVIEW,
- (void)awakeFromNib
{
[super awakeFromNib];
//...rest of the code
[self setBackgroundImage:[UIImage new]//imageNamed:@"topbar"]
forToolbarPosition:UIToolbarPositionAny
barMetrics:UIBarMetricsDefault];
[self setShadowImage:[UIImage new] forToolbarPosition:UIBarPositionAny];
[self setBackgroundColor:[UIColor clearColor]];
}
то будет теперь запустить проект и изменить ведущие ограничения постоянная вы видите ниже выход,
- 1. Представление контроллера View только в DetailViewController UISplitViewController
- 2. UISplitViewController detailView
- 3. UITableView, uisplitviewcontroller - способ управления detailview?
- 4. Передача int из MasterView в DetailView в UISplitViewController
- 5. обновления кадра DetailViewController в подклассе UISplitViewController
- 6. UISplitViewController - detailView не показывает
- 7. Изменение DetailView согласно MasterView в UISplitViewController
- 8. Как получить размер представления detailViewController в UISplitViewController
- 9. Как создать DetailViewController для UISplitViewController?
- 10. UISplitViewController в быстрой навигации из DetailView
- 11. Ошибка при использовании JSQMessagesViewController
- 12. UISplitViewController не вызывает методы делегата при нажатии новой detailView
- 13. TableView как подзаголовок DetailView с UISplitViewController?
- 14. UISplitViewController сбой при использовании showDetailViewController
- 15. UISplitViewController: Показать masterViewController после навигации в detailViewController на iPhone
- 16. viewWillAppear не получает вызов для detailView UISplitViewController
- 17. При использовании JSQMessagesViewController пользовательский интерфейс не отображается
- 18. Нужна помощь в замене detailViewController с помощью Other ViewController
- 19. DetailView не создан в UISplitView
- 20. намерения Android запуска при Lockscreen должен появиться
- 21. UISplitViewController с использованием UISearchController, не передающего объекты в detailView во время поиска
- 22. Результат данных должен появиться в одном столбце
- 23. attributeGroup должен появиться после перечисления в XSD
- 24. Изображение не может появиться при использовании Modal
- 25. как загрузить splitViewController detailViewController в firstDetailViewController в другом классе
- 26. Отсутствует UIBarButtonItem в UISplitViewController
- 27. получил «не может появиться в постоянной экспрессии» при использовании шаблону
- 28. Показать LocationMediaItem в JSQMessagesViewController
- 29. Как скрыть MasterView для UISplitViewcontroller в IOS8
- 30. Как добавить adbannerview в UISplitviewController
не мог решить вопрос? – iMHitesh