当更改UIBarButtonItem标题时,转换是生涩/闪烁
我有一个UIViewController
子类。 我给view控制器一个rightBarButtonItem在viewDidLoad
是这样的:
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Difficulty" style:UIBarButtonItemStylePlain target:nil action:nil];
当用户按下视图中的另一个button时, UIBarButtonItem
的标题/文本将UIBarButtonItem
更改:
self.navigationItem.rightBarButtonItem.title = @"Mellansvår";
它工作正常,但标题改变时,看起来不太好。 文本跳了一下。
我已经在运行时改变了UILabel
文本,而当我改变他们的文本是不是看起来像这样,但我不知道如何添加一个UILabel
到navigationItem 。 我无法在界面生成器中执行此操作,因为导航栏来自UINavigationController
。
有没有办法改变标题更顺利?
可以不用再次设置标题,而是可以使用标题再次设置button,然后对其进行设置:
(void)setRightBarButtonItem:(UIBarButtonItem *)item animated:(BOOL)animated
另一个解决scheme是改变没有animation的标题。
[UIView performWithoutAnimation:^{ self.navigationItem.rightBarButtonItem.title = @"Mellansvår"; }];
如果在UIBarButtonItem标题没有附加到navigationItem的情况下更改UIBarButtonItem标题,则可以完全跳过animation,如下所示:
UIBarButtonItem *tempItem = self.navigationItem.rightBarButtonItem; self.navigationItem.rightBarButtonItem = nil; tempItem.title = @"Mellansvår"; self.navigationItem.rightBarButtonItem = tempItem;
animation将完全消失,但视觉效果看起来更好恕我直言。