zan*_*ona 2 resize uinavigationbar subclassing ios ios6
我试图UINavigationBar用定义的高度子类并尝试实现sizeThatFits方法:
@implementation NavigationBar
- (CGSize)sizeThatFits:(CGSize)size {
NSLog(@"frame: %@", NSStringFromCGRect(self.frame));
return CGSizeMake(self.frame.size.width, 62);
}
@end
Run Code Online (Sandbox Code Playgroud)
但显然self.frame.size.width总是返回一个奇怪的值,这不是1024,这是我的目标,它导致下面的行为:
http://f.cl.ly/items/2X3S2u2v1q2X472i0P1z/Image%202012.12.04%2015:27:47.png
NSLog 输出:
> frame: {{224, 20}, {576, 62}}
Run Code Online (Sandbox Code Playgroud)
手动定义CGSizeMake(1024, 62)此操作将导致以下情况:
http://f.cl.ly/items/1x3y1w2J1K1A0f2r0i1c/Image%202012.12.04%2015:34:42.png
隐藏按钮和NSLog输出将是:
> frame: {{-128, 20}, {1280, 62}}
Run Code Online (Sandbox Code Playgroud)
有关如何正确实现此方法的任何想法,以便导航栏延伸到所有窗口?
如果您想避免使用"幻数",请尝试使用UINavigationBarsuperview的大小.
- (CGSize)sizeThatFits:(CGSize)size
{
return CGSizeMake(self.superview.bounds.size.width, 62.0f);
}
Run Code Online (Sandbox Code Playgroud)
在iOS 6上适用于我.无需覆盖layoutSubviews.
| 归档时间: |
|
| 查看次数: |
4104 次 |
| 最近记录: |