有什么fixedSize作用?
它只是将所有布局行为修复为等于idealWidth/吗idealHeight?
如果是这样,我们可以这样说吗
frame(width: w, height:h)
Run Code Online (Sandbox Code Playgroud)
相当于
frame(minWidth: w, idealWidth:w, maxWidth: w, minWidth: h, idealWidth:h, maxWidth: h)
Run Code Online (Sandbox Code Playgroud)
或不?
通常 aView受到其父级提议的空间的约束,该空间称为proposedSize。
有些视图使用整个建议空间 ( Color, Rectangle)。其他人会接受他们的idealSize,受此限制proposedSize(类似min(idealWidth, proposedWidth))。
最好的例子就是视图Text。让我们看一个Text97 点宽的视图:当父视图为其提供 150 点宽时,它仅使用 97 点。
当父视图仅提供 50 点宽时,它仅使用 50 点宽(并跨越几行)。
如果我们使用修饰符fixedSize,我们会像苹果公司所说的那样提出反建议。也就是说我们建议视图使用itidealWidth而不是the proposedWidth。
应用于文本视图,这意味着它将不受父视图提供的宽度的限制,因此不会跨越多行。
应用于 a Rectangle,它变得更令人惊讶:它idealWidth似乎是 10 点......
应用于视图UIKit(用 包裹UIViewRepresentable)时,idealWidth 将等于intrinsincContentSize.width。
struct MyViewRepresentable: UIViewRepresentable {
func makeUIView(context: Context) -> MyUIView {
let view = MyUIView()
view.backgroundColor = .orange
return view
}
func updateUIView(_ uiView: MyUIView, context: Context) { }
class MyUIView: UIView {
override var intrinsicContentSize: CGSize {
CGSize(width: 70, height: 70)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
786 次 |
| 最近记录: |