jps*_*sim 2 uinavigationitem ios ios5 uiappearance
我使用的是iOS 5的UIAppearance协议使用自定义导航栏后退按钮,当看到这里.与我发现的其他方法不同,这个方法是最好的,因为它保留了默认的后退按钮动画和行为.
唯一的问题是我无法更改其大小或将其设置为不剪辑子视图.这是发生了什么:
A是预期的行为,B是默认样式,C是剪切结果.
不幸的是,它并不像将UIBarButtonItem设置为clipsToBounds = NO那么容易.
有谁知道如何解决这个问题?谢谢!
正如您所发现的,UIAppearance
代理不会让您调整按钮本身的尺寸:UIBarButtonItem
文档中给出了支持的外观方法列表,虽然它包含标题标签本身的指标,但按钮是禁止的.
对于它的价值,按钮本身实际上是44点(88像素,如果你在视网膜中)在可触摸区域方面高,它只是按钮图形小于那个.
如果你已经设定了相当于3磅高度的差异,那么最好的选择可能是创建自己的自定义按钮并使用该UINavigationItem
setLeftBarButtonItem
方法.正如您所指出的,您将需要实现附加到该按钮的简短方法,该方法实现popNavigationController
以确保保持正确的行为.
更新:我刚刚发现,如果你保持你的后退按钮,你可以实际上动画它,使它以类似于标准后退按钮的方式滑动.在下面的代码中self.backButton
,UIButton
您将在您的initWithCustomView
UIBarButtonItem
方法中使用.
- (void)viewWillDisappear:(BOOL)animated {
[UIView animateWithDuration:0.3
animations:^{
self.backButton.frame = CGRectMake(self.backButton.frame.origin.x+100,
self.backButton.frame.origin.y,
self.backButton.frame.size.width,
self.backButton.frame.size.height);
}];
}
Run Code Online (Sandbox Code Playgroud)
...这将在视图控制器消失时触发(即,弹出和按下时),但是您可以挂钩UINavigationController
代理以仅在弹出导航控制器时触发它.当按下控制器时,它似乎肯定会移动按钮,虽然我只在模拟器上测试过它.
归档时间: |
|
查看次数: |
11902 次 |
最近记录: |