- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我真的要感谢构建 snapkit 的人。它确实使为 UIViews 设置约束变得非常容易。
但现在,我有一个简单的问题:如何访问使用此库设置的 View 的 frame 属性?
例如:
self.view.addSubview(contributePosterView)
self.contributePosterView.snp.makeConstraints { (make) in
make.left.equalTo(self.view.snp.left)
make.width.equalTo(self.view.bounds.width)
make.top.equalTo(self.table.snp.bottom)
make.bottom.equalTo(self.view.snp.bottom)
}
如何访问我命名为 contributePosterView
的 View 的 frame 属性?
这对我来说很重要,尤其是当我必须使用所述 ScrollView 的 layoutSubviews 属性在 UIScrollview
中设置它们时。
我尽可能多地检查了 snapkit 文档,但仍然没有找到答案。
我该怎么办?任何帮助将不胜感激。
最佳答案
“SnapKit”提供了添加约束的方法,使用许多人认为比默认的 NSLayoutContraint
方法更简单的语法。但是,它不会对 View 执行任何操作以致无法获得结果帧的大小。
问题是您可能在 viewDidLoad()
中进行“快照”调用,然后立即尝试获取帧。那时,所发生的只是添加了约束,但自动布局还没有完成它的工作。
您想重写viewDidLayoutSubviews()
,此时您可以获得有效的帧大小:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// now you can get the resulting frame
let f = self.contributePosterView.frame
// do what you want with the frame
}
关于ios - 如何获取已通过 snapkit 设置的 UIView 的框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55492684/
我已经尝试了各种安装“Snapkit”的方法,但到目前为止我运气不佳。 我正在使用以下内容:- Xcode 8.3.3 到目前为止,我已经尝试按照所有在线文档来解决问题,但它仍然无法正常工作。包括以下
我有几个标签 应该有以下要求 最小宽度为 38 像素 右对齐 高度为 22 像素 每侧额外填充 8 像素的宽度 到目前为止,我设法使 1、2 和 3 正常工作(如图所示),但我在第四个约束上遇到了麻烦
以下是我的 viewDidAppear() 方法,我试图用它为我的应用程序构建功能原型(prototype)。 GraphicsView 实例变量通过 Storyboard绑定(bind)到我编写的
我用一个场景制作了 Storyboard。在我的 UIViewController 中,我使用 SnapKit 定义了以下内容: @IBOutlet weak var emailTextField:
我正在使用 Snapkit 来简化我的自动布局代码,但是似乎经常弹出一个场景,我想知道是否有一种方法可以减少代码。 假设我需要将 UIView 的边缘固定到它的 super View 边距,我们可能会
我尝试了不同的教程来使用 Snapkit 制作灯光动画,但似乎没有任何帮助。我什至尝试过 Spring 框架,但效果不佳。这是我的代码。 private func setupMatchView() {
我正在尝试在 SnapKit 中创建此布局的约束,但我很难设置最大大小 (lessThanOrEqual)。 let maxWidthContainer: CGFloat = 435 let maxH
我构建了一个应用程序,它不使用任何界面生成器,而是使用 Snapkit 创建自动布局约束。纵向时一切看起来都很好,但是一些屏幕需要一些特定于横向的限制。 我在这里和谷歌上搜索了关于执行此操作的快速介绍
只是尝试使用 SnapKit 自动布局添加 UILabel。我使用的代码如下: override func viewDidLoad() { super.viewDidLoad() se
我根据iPhone X版本编辑了我的应用程序。其他 iPhone 型号由于屏幕尺寸的原因此图像已损坏。如何根据 iPhone 版本编辑我定义的值?例如,我分享一个示例代码: registerlabel
我正在尝试为我的应用程序制作 Logo (UILabel) 从中间到顶部的动画。我尝试的是更新约束,但它似乎不起作用。问题是动画,即 Logo ,从原点 (0,0) 而不是 View 的中间到顶部。必
我想要的是这样的: 这是我的代码: let label1 = UILabel() let label2 = UILabel() label1.textColor = .whit
现在如果我想在左边和右边设置相等的边距,它需要两行: label.snp.makeConstraints { make in make.left.equalTo(Constants.margi
我目前正在将 SnapKit 与 Swift 结合使用,使用演练来制作测验应用程序。我目前正在制定一些约束,并想将一些新约束附加到我的约束数组中 我收到错误消息“元组类型 '()' 的值没有成员 an
当我尝试在创建约束后立即更新 snapkit 约束时,我得到一个Updated constraint could not find existing matching constraint to up
我是SnapKit的初学者,我想用SnapKit实现一个UITableViewController,每一行有两个UILabel,一个是Title,另一个是Value。我的问题是 UITableView
我正在尝试使用 SnapKit 实现 2 个 View 的动画。 这是我的动画 View : class MatchAnimation: UIView { let viewBackground
我有一个 TableViewCell 和两个按钮来切换不同的约束。 我想更新它的高度约束和单元格高度。 喜欢下面的图1 当我点击 buttonB 时, View 会像 pic2 然后我点击button
func setupPosition() { box.snp.makeConstraints{(make)->Void in make.edges.equalTo(vi
我有一个标签,无论使用什么设备,我都希望它在屏幕上具有相同的相对位置。例如。标签的位置距 View 上边距 10%,距 View 左边距 30%。 常量将始终进行定位,例如距离 View 边距 150
我是一名优秀的程序员,十分优秀!