UINavigationBar titleView 用于不同的方向

Posted

技术标签:

【中文标题】UINavigationBar titleView 用于不同的方向【英文标题】:UINavigationBar titleView for different orientation 【发布时间】:2012-04-26 14:01:06 【问题描述】:

当方向改变时,调整 UINavigationBar titleview 内容图像大小的最佳方法是什么。 我有一个 44px 高度的图像和另一个 32px 的图像,旋转视图后,我更改了 titleview 并设置了新的 imageview。但也许还有另一种方法可以通过 autoresizingmask 或其他技巧来实现某些结果?

【问题讨论】:

【参考方案1】:

autoresizingMask 可以在设备旋转时修改视图框架的大小,但是如果您想在旋转发生时在两个不同的图像之间切换,则必须在 willAnimateRotationToInterfaceOrientation:duration: 中以编程方式进行操作

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration

    [super willAnimateRotationToInterfaceOrientation:interfaceOrientation duration:duration];

    if (interfaceOrientation == UIDeviceOrientationLandscapeRight || interfaceOrientation == UIDeviceOrientationLandscapeLeft)         
        // landscape
        [imageView setImage:landscapeImage]; 
     else 
        // portrait
        [imageView setImage:portraitImage]; 
    

【讨论】:

但是什么方式是最好的并且不会影响性能?通过使用自动调整大小的蒙版或更改图像来调整 imageview 框架的大小?

以上是关于UINavigationBar titleView 用于不同的方向的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationBar TitleView 带字幕

UINavigationBar titleView 比栏本身高

UINavigationBar titleView 用于不同的方向

防止 UINavigationItem 的 TitleView 闪烁

如何设置navigationItem.titleView 图片水平居中?

有啥方法可以覆盖 iOS 7 中的 titleView 褪色?