关于ios:如何在旋转ipad时阻止具有自定义视图的UIBarButtonItem拉伸?

How can I stop a UIBarButtonItem with a custom view from stretching when I rotate the ipad?

我的导航栏中每个视图控制器都有多个UIBarButtonItem。右边的最后一个是具有自定义视图的商品,因为该商品上的编号是在您从购物车中添加或删除商品时更新的。

当我将项目添加到视图控制器的navigationItem时,最初一切看起来都不错。但是,当我旋转ipad时,按钮会拉伸(如果以纵向开始)或收缩(如果以横向开始)示例图片说明:

Expected

我尝试将项目的宽度设置为44(我在xib中设计的自定义uibutton的大小),在自动布局中的自定义视图上设置宽度约束,等等,但这是行不通的。如何强制导航项在自定义视图中保持固定大小?

谢谢!


我找到了解决此问题的方法。如果我像这样在uibutton子类中覆盖setFrame:

1
2
3
4
5
- (void)setFrame:(CGRect)frame
{
    frame.size.width = 44;
    [super setFrame:frame];
}

然后正确布局。似乎是一种令人讨厌的骇客/解决方法,但它确实有效!