我遇到了很多人在创建一个UIBarButtonItem时,使用一个UIButton作为自定义视图时也遇到了同样的问题。
基本上按钮要么向左或向右偏移大约10像素。当我使用没有自定义视图的常规BarButtonItem时,不会出现这种情况。
这篇文章提供了部分解决方案:带有自定义视图的UIBarButtonItem
以下是我的代码,我通过子类化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秒钟,然后才会闪到正确的缩进位置。
这非常难看,我不知道如何停止它像这样突然移动。有什么想法吗?谢谢!