ios - 自动调整 anchor 大小不会将 subview 设置为角点

标签 ios swift

我在快速使用 anchor 调整 UIButtonUILabel 大小时遇到​​问题。

我现在的看法:

My view right now

我想要标签和按钮填充整个 View ,并在两者之间留出一个空白空间(“开放空间”)。这是我的代码:

import UIKit

class standardLabel: UIView {

    private var label: UILabel!
    private var button: UIButton!

    let openSpace: CGFloat = 4.0

    required init?(coder aDecoder: NSCoder) {

        super.init(coder: aDecoder)

        label = UILabel()
        button = UIButton()

        label.backgroundColor = cLightBlue
        label.textColor = cWhite
        label.textAlignment = .center
        label.font = fBigFont
        button.backgroundColor = cWhite
        button.setTitleColor(cDarkBlue, for: .normal)
        button.titleLabel?.font = fBigCleanFont

        label.translatesAutoresizingMaskIntoConstraints = false
        button.translatesAutoresizingMaskIntoConstraints = false

        addSubview(label)
        addSubview(button)

        setConstraints()

        //layer.masksToBounds = true
        //layer.cornerRadius = cornerRad
        backgroundColor = UIColor.brown//superview?.backgroundColor
    }

    func setTextLabel(text: String) -> Void {
        label.text = text
    }

    func setTextButton(text: String) -> Void {
        button.setTitle(text, for: .normal)
    }

    private func setConstraints() -> Void {
        let margins = layoutMarginsGuide

        label.topAnchor.constraint(equalTo: margins.topAnchor).isActive = true
        label.bottomAnchor.constraint(equalTo: margins.bottomAnchor).isActive = true
        label.leadingAnchor.constraint(equalTo: margins.leadingAnchor).isActive = true
        button.topAnchor.constraint(equalTo: margins.topAnchor).isActive = true
        button.bottomAnchor.constraint(equalTo: margins.bottomAnchor).isActive = true
        button.trailingAnchor.constraint(equalTo: margins.trailingAnchor).isActive = true


        label.trailingAnchor.constraint(equalTo: button.leadingAnchor, constant: openSpace).isActive = true
        label.widthAnchor.constraint(equalTo: button.widthAnchor).isActive = true
    }
}

我是否在设置 anchor 时犯了错误,或者是否因为我创建了一个单独的类而产生了问题?

最佳答案

我尝试了你的代码,它完全没问题,我刚刚发现两个 View 之间有 4.0,但由于按钮的颜色是白色,你无法看到标签和按钮之间的间距。

尝试将间距增加到 20.0,您就会知道差异。

关于ios - 自动调整 anchor 大小不会将 subview 设置为角点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39787945/

相关文章:

ios - Swift - 当最后一行不可见时,如何对 UITableView 的最后一行执行特定操作?

ios - 无法将“ForumViewController”类型的返回表达式转换为“UITableViewCell”类型

ios - 为了 iOS 开发中的 DRY 兴趣——我应该在哪里放置一个函数来在多个 View 上放置渐变?

swift - 如何分别从 Firebase Auth 和实时数据库中自动删除用户和用户的数据?

swift - Xcode storyboard 编译错误,stringsfiles.doesn't exist

ios - Swift - 自定义 UIImageView 类

ios - ActionScript3.0 - 如何获取坐标处像素的颜色 (uint)? (Stage3D, Flare3D)

ios - 从设置iOS设置Twitter帐户

xcode - NSDate() - Playground 与 Swift Xcode

ios - 使用 UICollectionView 调整 UICollectionViewCell 的大小