我面临同样的问题,所以我探索了 JSQMessagesViewController 问题;
issue 358:说作者近期不会支持这个,因为其他特性优先级更高,没有其他人要求过。作者建议我们分叉和定制它。
另一个问题是问同样的问题,并且有一个使用 Frame 添加第二个按钮的示例。
我不认为这是一个很好的例子。
我认为我下面的演示更好。
在viewDidLoad
方法JSQMessagesViewController
或子类 中
UIButton *btn=[UIButton buttonWithType:UIButtonTypeContactAdd];
JSQMessagesToolbarContentView *contentView= self.inputToolbar.contentView;
[contentView.leftBarButtonContainerView addSubview:btn];//add the new button
contentView.leftBarButtonItemWidth=66; //make containerView wider to hold more buttons
//remove unused leftBarButtonItem constraint
for (NSLayoutConstraint *constraint in contentView.leftBarButtonItem.superview.constraints) {
if(constraint.secondItem ==contentView.leftBarButtonItem &&constraint.firstAttribute ==NSLayoutAttributeLeading){
constraint.active=NO;
}
}
// update two button constraint
[contentView.leftBarButtonItem mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.equalTo(@30);
}];
[btn mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(btn.superview.mas_top);
make.bottom.equalTo(btn.superview.mas_bottom);
make.left.equalTo(btn.mas_left);
make.width.equalTo(@30);
}];
结果如下:
InputToolBarContent