【问题标题】:Swift constrain view to other view that has been transformedSwift 将视图约束到已转换的其他视图
【发布时间】:2021-01-24 15:48:42
【问题描述】:

我有一个highlightView,我想将它constraint 发送给另一个view。这是我的功能:

func showHighlightView(viewToHighlight: UIView, height: CGFloat) {
    self.view.addSubview(highlightView)
    highlightView.heightAnchor.constraint(equalTo: viewToHighlight.heightAnchor).isActive = true
    highlightView.widthAnchor.constraint(equalTo: highlightView.heightAnchor).isActive = true
    
    highlightView.centerXAnchor.constraint(equalTo: viewToHighlight.centerXAnchor).isActive = true
    highlightView.centerYAnchor.constraint(equalTo: viewToHighlight.centerYAnchor).isActive = true
    highlightView.layer.cornerRadius = height/2

    highlightView.layer.add(self.scaleAnimation, forKey: "scale")

    self.view.bringSubviewToFront(viewToHighlight)
}

这适用于我的大多数情况。但是我有一个view,我transform 是这样的:

var transformerBumbleBee = CGAffineTransform.identity
transformerBumbleBee = transformerBumbleBee.translatedBy(x: 25, y: -80)
transformerBumbleBee = transformerBumbleBee.scaledBy(x: 1, y: 1)
self.addListButton.transform = transformerBumbleBee

有了这个addListButton 我的showHightLightView() 被限制为addListButtonidentity-constraint 而不是transformed。有办法改变吗?

【问题讨论】:

    标签: ios swift uiview constraints nslayoutconstraint


    【解决方案1】:

    transform 不会将约束应用于其他视图,您需要通过更改约束的常量/乘数值来进行平移和缩放操作

    【讨论】:

      【解决方案2】:

      转换不能与约束一起使用,如果您使用上面的代码,您可能会收到一些与约束相关的运行时警告。

      使用任何一种方式,只需在视图中以编程方式将视图添加为子视图并应用转换。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-11
        相关资源
        最近更新 更多