Pra*_*ani 10 iphone objective-c cgaffinetransform ipad ios5
我想以编程方式旋转视图,因为我使用了以下代码:
CGAffineTransform rotateTransform = contentView.transform;
CGAffineTransform rotatenewTransform = CGAffineTransformRotate(rotateTransform,aFloatRotate);
contentView.transform = rotatenewTransform;
Run Code Online (Sandbox Code Playgroud)
当我这样做时,contentView(我的UIView)的宽度和高度增加.
我应该怎么做才能使contentView保持原样并且它也会旋转?
提前致谢.
在这里,我将更详细地解释我的问题:
我的contentview包含一个按钮和一个imageView.这个contentView在后台添加,这个contentView不应该超出这个背景边界.
但是当我通过上面的代码旋转这个内容视图时,contentView的widht和height会增加,所以有时它会超出背景边界.
我希望你能清楚这一点.:)
jrt*_*ton 11
宽度和高度(可能是你从中获取frame.size)必须改变,因为它们描述了保持整个旋转视图的最小矩形 - 如果你将一个矩形旋转45度,那么保持旋转矩形的矩形比它更宽更高原始的矩形.
旋转视图的"实际"大小仍将在bounds矩形中可用- 这在视图的内部坐标系中表示,该系统未旋转.
因此,如果您的原始frame原点是原点(100,100),大小(100,50),则您的旋转视图将具有frame原点和大小为矩形的位置,该矩形可以适合您在其中的旋转视图,如超视图的坐标系中所述.如果你现在这样做:
CGFloat width = contentView.frame.size.width;
Run Code Online (Sandbox Code Playgroud)
你会得到你改变的价值.但是,如果你这样做:
CGFloat width = contentView.bounds.size.width;
Run Code Online (Sandbox Code Playgroud)
您将获得原始的100宽度值.
| 归档时间: |
|
| 查看次数: |
1997 次 |
| 最近记录: |