自定义UIBarButtonItem和接口旋转

时间:2013-04-25 09:55:27

标签: ios uibutton uibarbuttonitem

有很多关于使用自定义视图定制UIBarButtonItem作为UIButton的讨论。很清楚。到目前为止我没有找到的,令我感到惊讶的是,没有提到处理界面旋转的自定义UIBarButtonItems - 它是旋转iPhone时常见的行为,条形按钮被垂直挤压。但是,如果您以普通方式自定义UIBarButtonItem(通过调用initWithCustomView:方法),它将在旋转到横向方向后保持非压缩状态。那有什么变通方法吗?

3 个答案:

答案 0 :(得分:1)

好吧,我发现在自定义UIApplicationDidChangeStatusBarOrientationNotification课程中处理UIBarButtonItem的解决方案相当不错。

答案 1 :(得分:0)

我认为您应该使用新的方向图像和文本重建UIBarButtonItem(您的自定义UIButton),或者重置自定义视图的框架。

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    UIButton *rightItemButton = (UIButton *)self.navigationItem.rightBarButtonItem.customView;
    //resize the frame
    if (isLandscape) {

    } else if (isPortrait) {
        ....
    }
}

答案 2 :(得分:0)

如果您可以从IB添加UIBarButtonItem(您不必以编程方式创建它),则可以设置弹簧和struts以获取默认行为。这个解决方案对我有用。