我正在尝试做一件简单的事情:在导航栏的右侧添加一个 UIBarButtonItem。看起来很简单:
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithTitle"Button" style:UIBarButtonItemStylePlain target:self actionselector(buttonTapped)];
[self.navigationItem setRightBarButtonItem:button];
但是当调用该方法时,发生了一件奇怪的事情:按钮从栏的左侧一直滑动。
右栏按钮不仅仅出现在右侧,而是出现在最左侧,快速滑过整个导航栏(在中间的标题下方),然后在右侧位置减速停止。从那时起,它完全按预期工作。
听起来很简单,但我无法让右栏按钮停止像这样滑入。我尝试将 animated:NO
和 animated:YES
添加到 setRightBarButtonItem:
方法中,但均无效。无论左侧是否有 UIBarButtonItem,都会发生这种情况。我试过使用 setRightBarButtonItems[button]
,但幻灯片动画没有改变。
有谁知道如何在导航栏的右侧添加一个简单的 UIBarButtonItem 而不会从侧面滑入?
您以某种方式将 setRightBarButtonItem
嵌入到某种动画中。
如果您非常仔细观察,您会注意到它实际上并不是按照说法从左到右,而是从 (0, 0)(大小为 (0, 0))到其最终静止位置和尺寸。 navigationItem
在动画中被劫持。
为了说服自己,你可以运行这个简单的代码片段:
func buttonTapped() {
UIView.animateWithDuration(5) { () -> Void in
let button = UIBarButtonItem(title: "Button",
style: .Plain,
target: self,
action: "buttonTapped")
self.navigationItem .setRightBarButtonItem(button, animated: false)
}
}
演示
关于ios - UIBarButtonItem 错误地沿栏设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35025416/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) | Powered by Discuz! X3.4 |