AutoLayout 不适用于 Plus 模型
AutoLayout not working for Plus models
我目前正在开发一个教育应用程序,第一个视图控制器显示主要类别,第二个(几乎像 Pinterest)显示几个子类别。我使用的 Auto 布局非常适合 iPhone 6、7、8 和 X,但是这些的 Plus 模型有点变形
这是它在模型 6、7、8 和 X 中的样子
但是当我在 Plus 机型中 运行 时,它看起来像下面这样:
我有以下自动布局代码
这个自动布局对应于第一个视图控制器,我使用的是堆栈视图,因此滚动视图的高度可以根据堆栈视图的内容进行调整。
此自动布局对应于类似 Pinterest 的子类别视图控制器。我正在使用 Ryan Wenderlich 使用的代码,但是我没有使用图像,而是在两个视图控制器中使用按钮,以便用户可以转到相应的部分。我以编程方式添加它们,但始终连接到单元格项原型。
我怎样才能使自动布局适用于 Plus 型号?
我发现了你的问题:
每个按钮都有一个标题 Button
,您应该删除默认标题。该标题按下了按钮的图像,由于标题为白色,您没有看到它。
您还可以通过 Control > Alignment section
控制 UIButton
的图像,请查看我附上的屏幕截图。
顺便说一下,我建议你在上面使用 UIImageView
+ UIButton
而不是使用 UIButton
的图像内容。
编辑
CollectionView
真是一团糟!它会吃掉很多内存。你们之间有很多细胞。
顺便说一下,您的第二个视图控制器问题似乎与未设置约束的 stackviews
有关。
cell.addSubview(stackView)
NSLayoutConstraint(item: stackView, attribute: .centerX, relatedBy: .equal, toItem: cell, attribute: .centerX, multiplier: 1, constant: 0).isActive = true
NSLayoutConstraint(item: stackView, attribute: .centerY, relatedBy: .equal, toItem: cell, attribute: .centerY, multiplier: 1, constant: 0).isActive = true
我只是将其中一个 stackview
居中,我发现它与约束有关。
看看这个以编程方式设置 Constraint
:
Swift | Adding constraints programmatically
我目前正在开发一个教育应用程序,第一个视图控制器显示主要类别,第二个(几乎像 Pinterest)显示几个子类别。我使用的 Auto 布局非常适合 iPhone 6、7、8 和 X,但是这些的 Plus 模型有点变形
这是它在模型 6、7、8 和 X 中的样子
但是当我在 Plus 机型中 运行 时,它看起来像下面这样:
我有以下自动布局代码
这个自动布局对应于第一个视图控制器,我使用的是堆栈视图,因此滚动视图的高度可以根据堆栈视图的内容进行调整。
此自动布局对应于类似 Pinterest 的子类别视图控制器。我正在使用 Ryan Wenderlich 使用的代码,但是我没有使用图像,而是在两个视图控制器中使用按钮,以便用户可以转到相应的部分。我以编程方式添加它们,但始终连接到单元格项原型。
我怎样才能使自动布局适用于 Plus 型号?
我发现了你的问题:
每个按钮都有一个标题 Button
,您应该删除默认标题。该标题按下了按钮的图像,由于标题为白色,您没有看到它。
您还可以通过 Control > Alignment section
控制 UIButton
的图像,请查看我附上的屏幕截图。
顺便说一下,我建议你在上面使用 UIImageView
+ UIButton
而不是使用 UIButton
的图像内容。
编辑
CollectionView
真是一团糟!它会吃掉很多内存。你们之间有很多细胞。
顺便说一下,您的第二个视图控制器问题似乎与未设置约束的 stackviews
有关。
cell.addSubview(stackView)
NSLayoutConstraint(item: stackView, attribute: .centerX, relatedBy: .equal, toItem: cell, attribute: .centerX, multiplier: 1, constant: 0).isActive = true
NSLayoutConstraint(item: stackView, attribute: .centerY, relatedBy: .equal, toItem: cell, attribute: .centerY, multiplier: 1, constant: 0).isActive = true
我只是将其中一个 stackview
居中,我发现它与约束有关。
看看这个以编程方式设置 Constraint
:
Swift | Adding constraints programmatically