首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Snapkit和UILabel旋转

Snapkit和UILabel旋转
EN

Stack Overflow用户
提问于 2017-06-12 19:23:24
回答 2查看 970关注 0票数 0

我有:

  1. UIView (集装箱)
  2. UIView。下面图片中(1) -深蓝色的子视图
  3. UIView。下图中(1) -紫色的子视图
  4. UILabel。edges.equalToSuperview()

我想要做的是:

问题是,我想让UILabel旋转3pi/2 (270°)。一旦我做了旋转,它的位置就不正确了。

设置edges.equalToSuperview()和270°旋转是这样的:

我试过这个(但它会导致崩溃):

代码语言:javascript
复制
myLabel.makeConstraints { make in
    make.top.equalTo(containerView.snp.left)
    make.right.equalTo(containerView.snp.top)
    make.left.equalTo(containerView.snp.bottom)
    make.bottom.equalTo(containerView.snp.right)
}

坠机描述:

代码语言:javascript
复制
*** Terminating app due to uncaught exception 'NSInvalidLayoutConstraintException', reason: 'Constraint improperly relates anchors of incompatible types: <SnapKit.LayoutConstraint:0x6100000ad8c0@MyClass.swift#250 MyProject.MyLabel:0x7fcc2201ca80.top == UIView:0x7fcc2201bd30.left>'

我能在这里做些什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-12 21:30:23

对于任何对麋鹿克隆人的答案感兴趣的人,请使用Snapkit:

代码语言:javascript
复制
myLabel.snp.makeConstraints { make in
    make.centerX.equalTo(containerView.snp.centerX)
    make.centerY.equalTo(containerView.snp.centerY)
}
票数 1
EN

Stack Overflow用户

发布于 2017-06-12 21:15:32

我使用默认的自动收费表( autolayout )完成了它,我也非常喜欢它。:)

这里是函数.

代码语言:javascript
复制
func makeLabel() {
        //Creating stackview
        let stackView = UIStackView()
        view.addSubview(stackView)
        stackView.translatesAutoresizingMaskIntoConstraints = false
        stackView.alignment = .fill
        stackView.distribution = .fillEqually
        stackView.axis = .vertical

        //Creating blueView
        let blueView = UIView()
        blueView.backgroundColor = UIColor.darkGray
        blueView.translatesAutoresizingMaskIntoConstraints = false
        stackView.addArrangedSubview(blueView)
        blueView.widthAnchor.constraint(equalToConstant: 100).isActive = true

        //Creating purpleView
        let purpleView = UIView()
        purpleView.backgroundColor = UIColor.purple
        purpleView.translatesAutoresizingMaskIntoConstraints = false
        stackView.addArrangedSubview(purpleView)

        stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
        stackView.topAnchor.constraint(equalTo: view.topAnchor, constant: 0).isActive = true
        stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true

        //Creating rotated label
        let label = UILabel()
        view.addSubview(label)
        label.transform = CGAffineTransform.init(rotationAngle: -CGFloat.pi/2)
        label.textColor = UIColor.white
        label.text = "This is my Rotated Text"
        label.font = UIFont.systemFont(ofSize: 25)
        label.translatesAutoresizingMaskIntoConstraints = false
        label.centerXAnchor.constraint(equalTo: stackView.centerXAnchor, constant: 0).isActive = true
        label.centerYAnchor.constraint(equalTo: stackView.centerYAnchor, constant: 0).isActive = true


    }

,这是输出.

肖像:

景观

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44507242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档