【问题标题】:Stop affine transform from applying on subview停止仿射变换应用于子视图
【发布时间】:2016-09-02 14:06:42
【问题描述】:

我有一个UIView,里面有一个UILabel

UIView 上应用仿射变换后,使用:

myView.transform = CGAffineTransformMakeScale(4, 4);

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

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

我试过了:

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

2) 向 myView 添加一个 superview 并将 myView 添加为 superview 的 subview,并将 label 作为 subview 添加到 superview(而不是 myView)。

它们似乎都不起作用,标签一直在增长。

有什么想法吗?

【问题讨论】:

    标签: ios objective-c uiview affinetransform


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      • 2018-06-06
      • 2016-11-26
      • 1970-01-01
      • 2010-12-17
      相关资源
      最近更新 更多