在没有框架改变的情况下旋转UIView

Cha*_*nte 6 objective-c ipad ios

我有一个UIView,它的高度和宽度在旋转到90度时互换.现在,当我尝试增加高度或宽度时,我看起来异常.如何更改旋转的UIView的高度?

fzw*_*zwo 9

Apple的文档声明,frame当视图transform不是标识转换时,视图的属性将变为未定义.

旋转视图会更改视图的变换.

现在,为什么这会使框架无效?Apple的文档实际上有点不精确:框架属性对于转换后的视图并不是完全没有意义的.相反,它现在将反映视图的边界矩形,即变换视图可以适合的最小直立矩形.

这是因为frame实际上是派生属性.如果要更改变换视图的"实际高度",即其自身坐标系中的高度(应用变换之前),则存在以下属性:bounds.

所以,简而言之:

CGRect bounds = myView.bounds;
bounds.size.height = newHeight;
myView.bounds = bounds;
Run Code Online (Sandbox Code Playgroud)