我正在尝试从笔尖设置一个服装navigationItem.leftBarButtonItem,但我在横向中得到了一个奇怪的行为。
编辑:
要清楚视图包含一个按钮和一个标签,这就是我使用服装视图的原因,按钮和标签都有约束。
self.buttonView =//init;
[self.buttonView setFrame:CGRectMake(0, 0, 36, 36)];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.buttonView];
[self.buttonView setBackgroundColor:[UIColor redColor]];
//you will see why
答案 0 :(得分:0)
似乎autolayout正试图满足一些限制,因此它会扩展你的按钮框架。
要解决此问题,请将contentHugging优先级设置为按钮所需:
[self.buttonView setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
尝试一下,让我知道它是否有效
答案 1 :(得分:0)
这是我能找到的唯一解决办法,如果有人有更好的想法请随时分享
-(void)viewWillLayoutSubviews{
[super viewWillLayoutSubviews];
[self setMenuButtonFrame];
}
-(void)setMenuButtonFrame
{
self.menuView.frame = CGRectMake(self.menuView.frame.origin.x,
self.menuView.frame.origin.y,
self.navigationController.navigationBar.frame.size.height-8,
self.navigationController.navigationBar.frame.size.height-8);
}