gpt4 book ai didi

swift - 快速编程自动布局

转载 作者:行者123 更新时间:2023-11-28 06:24:27 25 4
gpt4 key购买 nike

我在应用程序中有:TextView 和 TableView。我创建他们的代码。现在我需要进行编程自动布局。但我不知道它是怎么做到的。请帮忙。附言对不起我的英语=)

    let displayWidth: CGFloat = self.view.frame.width
let displayHeight: CGFloat = self.view.frame.height

myTextView = UITextView(frame: CGRect(x: 0, y: 20, width: displayWidth, height: displayHeight / 3))
creatTextView()

myTableView = UITableView(frame: CGRect(x: 0, y: displayHeight / 3, width: displayWidth, height: displayHeight * 2 / 3))
createTable()

最佳答案

AutoLayout 快速指南

文档:https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/

我通常设置对左、右、底部/顶部和宽度/高度的约束。这可以通过多种方式实现。

一些关键字:

leading:表示物体的左边部分

Trailing:表示对象的右边部分

首先,您想要创建所有必要的变量来保存您的自动布局指南,对于您正在使用自动布局的 View ,您需要将 translatesAutoresizingMaskIntoConstraints 设置为 false,如下所示:

self.btn.translatesAutoresizingMaskIntoConstraints = false

var btnLeading: NSLayoutConstraint!
var btnBottom: NSLayoutConstraint!
var btnTop: NSLayoutConstraint!
var btnWidth: NSLayoutConstraint!

我只是复制了一些我在项目中使用的代码,但我想你最终会掌握它的窍门。 self.userLocationBtn 只是我 View 中的一个按钮,我想将其放置在我已子类化的 UIView 中。

self.btnLeading = NSLayoutConstraint(
item: self.userLocationBtn,
attribute: .leading,
relatedBy: .equal,
toItem: self,
attribute: .leading,
multiplier: 1.0,
constant: 5.0)
self.btnBottom = NSLayoutConstraint(
item: self.userLocationBtn,
attribute: .bottom,
relatedBy: .equal,
toItem: self,
attribute: .bottom,
multiplier: 1.0,
constant: 0.0)
self.btnTop = NSLayoutConstraint(
item: self.userLocationBtn,
attribute: .top,
relatedBy: .equal,
toItem: self,
attribute: .top,
multiplier: 1.0,
constant: 0.0)
self.btnWidth = NSLayoutConstraint(
item: self.userLocationBtn,
attribute: .width,
relatedBy: .equal,
toItem: self,
attribute: .height,
multiplier: 1.0,
constant: 0.0)

self.addSubview(self.doneButton)

添加 View 后,我们需要激活约束,然后更新 View 。

NSLayoutConstraint.activate([self.btnLeading, self.btnBottom, self.btnTop, self.btnWidth])

self.view.layoutIfNeeded() //Lays out the subviews immediately.

关于swift - 快速编程自动布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42392072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com