当使用JSQMessagesViewController作为的DetailView在UISplitViewController,KeyBoardToolBar需要出现在DetailViewController只有当使用JSQMessagesViewController作为的DetailView在UISplitviewCOntroller,KeyBoardToolBar需要出现在DetailViewController只有
0
A
回答
0
末的答案...
如果你想减少inputToolbar
你需要创建一个JSQMessagesToolbarContentView
的子类,并为工具栏的内容视图提供自己的视图。
下面我给样本例子,在这之后创建的JSQMessagesToolbarContentView
将它命名为subcalss作为subcalss JSQMessagesToolbarContentView_custom
添加以下代码,
#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
。听到我只能添加自定义视图的图像。
现在创建一个出口为主导的约束,以减少内容视图的大小在下面给出,
,并添加出口的在演示中给出的约束。所以如果u加一些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. UISplitViewController detailView
- 2. 当使用JSQMessagesViewController UI不会出现
- 3. 如何为UISplitViewController创建DetailViewController?
- 4. TableView作为DetailView的子视图与UISplitViewController?
- 5. UISplitViewController:在detailView内导航
- 6. UISplitViewController - detailView未显示
- 7. viewWillAppear没有得到调用detailView of UISplitViewController
- 8. 仅在UISplitViewController的DetailViewController中呈现视图控制器
- 9. 从DetailView的Swift导航UISplitViewController
- 10. 如何全屏UISplitViewController在景观DetailView
- 11. UISplitViewController StoryBoards继续取代detailview
- 12. 出现在通知只有一次,而无需使用cookie的
- 13. UISplitViewController使用UISearchController在搜索时不传递对象到detailView
- 14. MediaController只出现在需求
- 15. 在awakeFromNib期间需要使NSPopover出现?
- 16. UISplitViewController detailViewController子视图不是方向变化适当调整
- 17. 需要输出在数据帧或需要中的R为输出中的所有行只有1头
- 18. UISplitViewController:在iPhone上的detailViewController导航后显示masterViewController
- 19. UISplitViewController出现在横向模式纵向
- 20. 如何在iPad上使用UIContainerView隐藏UISplitViewController主内嵌辅助UITableViewController的DetailView
- 21. 在斯卡拉,为什么我需要导入的东西只有当我用它作为返回类型?
- 22. 在UISplitViewController的DetailView中UIAlertView不触发UIAlertViewDelegate代码
- 23. 使用UISplitViewController的Tableview作为过滤器
- 24. 只有在需要时才在PHP语句中使用逗号
- 25. NSInvalidArgumentException使用JSQMessagesViewController
- 26. 当我在UISplitViewController中将iPad设置为Potrait模式时,调整detailViewController的pagecontrolview的大小
- 27. 创建的cronjob使用bash脚本 - 需要出现在Plesk中
- 28. 只有当应用程序在前台时,Toast才会出现?
- 29. 为什么我现在需要在我所有的Selenium测试中使用WebDriverWait?
- 30. Rails的:使用正则表达式,只有当数据出现
找不到您的问题? – iMHitesh