停止仿射变换应用于子视图
Stop affine transform from applying on subview
我有一个 UIView
,里面有一个 UILabel
。
在 UIView
上应用仿射变换后使用:
myView.transform = CGAffineTransformMakeScale(4, 4);
我的 UILabel
(它是 myView 的子视图)也在增长。
有什么办法可以避免这种情况吗?
我试过了:
1) 在标签上使用 CGAffineTransformIdentity
标志。
2) 将父视图添加到 myView 并将 myView 添加为父视图的子视图,并将标签作为子视图添加到父视图(而不是 myView)。
它们似乎都没有用,标签一直在增长。
有什么想法吗?
您用选项 2 回答了您自己的问题。不确定为什么它不起作用,因为您没有提供任何代码。下面的 playground 代码显示它可以工作。取消注释最后一行以转换子视图而不是标签。
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)
我有一个 UIView
,里面有一个 UILabel
。
在 UIView
上应用仿射变换后使用:
myView.transform = CGAffineTransformMakeScale(4, 4);
我的 UILabel
(它是 myView 的子视图)也在增长。
有什么办法可以避免这种情况吗?
我试过了:
1) 在标签上使用 CGAffineTransformIdentity
标志。
2) 将父视图添加到 myView 并将 myView 添加为父视图的子视图,并将标签作为子视图添加到父视图(而不是 myView)。
它们似乎都没有用,标签一直在增长。
有什么想法吗?
您用选项 2 回答了您自己的问题。不确定为什么它不起作用,因为您没有提供任何代码。下面的 playground 代码显示它可以工作。取消注释最后一行以转换子视图而不是标签。
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)