因此,在使用 UIButton 作为自定义视图创建 UIBarButtonItem 时,我遇到了许多其他人遇到的相同问题。
基本上,该按钮距左侧或右侧大约 10 个像素。当我使用没有自定义视图的常规 BarButtonItem 时,不会发生这种情况。
这篇文章提供了部分解决方案: UIBarButton With Custom View
这是我通过子类化 UIButton 创建的代码(如另一篇文章中所述)
- (UIEdgeInsets)alignmentRectInsets {
UIEdgeInsets insets;
if ([self isLeftButton]) {
insets = UIEdgeInsetsMake(0, 9.0f, 0, 0);
}
else { // IF ITS A RIGHT BUTTON
insets = UIEdgeInsetsMake(0, 0, 0, 9.0f);
}
return insets;
}
- (BOOL)isLeftButton {
return self.frame.origin.x < (self.superview.frame.size.width / 2);
}
这很好用,但是当我从导航控制器弹出一个视图控制器回到这个主视图时,按钮仍然错误定位大约 0.3 秒,然后它卡入正确的插图。
这是一个巨大的眼睛,我不知道如何阻止它像这样折断。有什么想法吗?谢谢!