我需要在运行时以编程方式更改UIBarButton位置。
如果我使用
UIBarButtonItem *b = photoEditor.navigationItem.leftBarButtonItem;
CGRect frame = b.customView.frame;
frame.origin.x = frame.origin.x + 20;
位置不变
然后我想要使用...重新创建按钮
UIBarButtonItem * btn = [[UIBarButtonItem alloc]
initWithTitle:title
style:UIBarButtonItemStyleBordered
target:target
action:selector];
但我无法访问操作信息。
要获得目标,b.target,但是如果我想要b.action?
答案 0 :(得分:0)
尝试使用此链接Apply back action to uiButton的解决方案,根据需要设置按钮框架。
之后当您想再次更改框架时,请使用以下代码
UIBarButtonItem *item = self.navigationItem.leftBarButtonItem;
UIView *view = [item valueForKey:@"view"];
[view setFrame:CGRectMake(0, 0, 56, 31)]; // Frame as per your need.
self.navigationItem.leftBarButtonItem = item;
答案 1 :(得分:0)
如果您的问题是如何获取操作选择器,Apple文档是否是获得答案的正确位置:UIBarButtonItem reference:
@property(nonatomic) SEL action
答案 2 :(得分:0)
你可以
UIBarButtonItem *item = self.navigationItem.leftBarButtonItem;
item setWidth:56;