停止在子视图上应用仿射变换

时间:2016-09-02 14:06:43

标签: ios objective-c uiview affinetransform

我有一个UIView,里面有UILabel

使用:{/ p>对UIView进行仿射变换后

myView.transform = CGAffineTransformMakeScale(4, 4);

我的UILabel(这是myView的子视图)也在增长。

有没有办法防止这种情况发生?

我试过了:

1)使用标签上的CGAffineTransformIdentity标志。

2)将超级视图添加到myView并将myView添加为superview的子视图,并将标签作为超级视图的子视图(而不是myView)。

他们似乎没有工作,标签不断增长。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你用选项2回答了你自己的问题。不确定为什么它没有工作,因为你没有提供任何代码。下面的游乐场代码显示它将起作用。取消注释最后一行以转换子视图但不转换标签。

import UIKit
import XCPlayground

let superview = UIView(frame: CGRect(x: 10, y: 10, width: 200, height: 200))
XCPlaygroundPage.currentPage.liveView = superview
superview.backgroundColor = UIColor.redColor()

let view = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100))
view.backgroundColor = UIColor.greenColor()
superview.addSubview(view)

let label = UILabel(frame: CGRect(x: 20, y: 10, width: 40, height: 40))
label.text = "Hello"
superview.addSubview(label)

//view.transform = CGAffineTransformMakeScale(2, 2)