【问题标题】:Detecting rotated width/height of UIView after orientation change在方向更改后检测 UIView 的旋转宽度/高度
【发布时间】:2012-01-12 21:05:46
【问题描述】:

我希望能够检查一个 UIView 实例,该实例可能已从其原始方向旋转或未旋转(例如,通过用户旋转设备)并确定“真实”宽度和高度是多少。 “真”在这里的意思是,如果纵向 iPad 上的视图在旋转之前是 768x1024,那么在横向转动之后,我会计算出新的宽度是 1024,新的高度是 768。

如果我像这样将视图的变换应用到它的框架属性上:

CGRect rotated = CGRectApplyAffineTransform([myview frame], [myview transform);

我得到了想要的结果。然而,Apple 的文档指出,如果视图的转换不是身份转换,则 UIView::frame 未定义,因此依赖此计算可能不是一个好主意?

【问题讨论】:

    标签: ios uiview uikit


    【解决方案1】:

    view.bounds 会返回你想要的矩形

    view.frame 将返回一个矩形,其中 transfrom 与位置一起应用于边界。

    【讨论】:

    • Bounds 如果您也在转换 Scale,则无济于事。它将读取未转换的 UIview 的矩形
    【解决方案2】:

    由于缺乏输入,我将采用我的使用解决方案:

    CGRect rotated = CGRectApplyAffineTransform([myview frame], [myview transform);

    获得正确定向的边界。如果有人有其他解决方案或可以确认这是安全的,我会将答案奖励给他们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      • 2012-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多