如何更改UIBarButtonItem在UINavigationBar中的位置?我希望我的按钮比正常位置高出5px。
发布于 2011-04-28 10:16:44
没有特别好的方法来做到这一点。如果真的需要的话,最好的办法就是继承UINavigationBar的子类,重写layoutSubviews
来调用[super layoutSubviews]
,然后找到并重新定位按钮的视图。
发布于 2014-12-17 22:59:49
我使用转换和自定义视图解决了这个问题:
(Swift)
// create the button
let suggestImage = UIImage(named: "tab-item-popcorn-on")!.imageWithRenderingMode(.AlwaysOriginal)
let suggestButton = UIButton(frame: CGRectMake(0, 0, 40, 40))
suggestButton.setBackgroundImage(suggestImage, forState: .Normal)
suggestButton.addTarget(self, action: Selector("suggesMovie:"), forControlEvents:.TouchUpInside)
// here where the magic happens, you can shift it where you like
suggestButton.transform = CGAffineTransformMakeTranslation(10, 0)
// add the button to a container, otherwise the transform will be ignored
let suggestButtonContainer = UIView(frame: suggestButton.frame)
suggestButtonContainer.addSubview(suggestButton)
let suggestButtonItem = UIBarButtonItem(customView: suggestButtonContainer)
// add button shift to the side
navigationItem.rightBarButtonItem = suggestButtonItem
发布于 2012-06-12 10:27:19
对于那些为iOS 5开发的人来说,他们偶然发现了这一点,并为此感到沮丧……尝试如下所示:
float my_offset_plus_or_minus = 3.0f;
UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithTitle:@"title"
style:UIBarButtonItemStyleDone
target:someObject action:@selector(someMessage)];
[item setBackgroundVerticalPositionAdjustment:my_offset_plus_or_minus forBarMetrics:UIBarMetricsDefault];
https://stackoverflow.com/questions/5761183
复制相似问题