viewui vue3(viewui的table组件)

接着来,UIView的属性可算弄完了,下一次就是方法了。

56.CGSize intrinsicContentSize(IOS 6.0以后可使用)

只读,词的意思是叫做固定内容大小。作用是当我们使用自动布局的时候,比如UILabel只指定了一个位置,没有定义大小的时候,UIabel会根据文字内容的多少来决定自己的大小。它是怎么做到的呢?根据文字量来重新定义自己的约束吗?或者重新计算自己的frame吗?都不是,UILabel类在自己内部重写了intrinsicContentSize这个属性然后返回了自己计算后的大小。为什么不重新定义约束或者重新计算自己的frame呢?第一随意添加约束和修改约束会引发冲突的,第二计算frame就成了绝对布局了,使用自动布局,然后还用绝对布局最为布局的变化发起者,明显不合适。

但并不是所有的继承UIView的视图都会重写intrinsicContentSize这个属性,大部分视图这个属性会返回一个值为UIViewNoIntrinsicMetric常量的CGSize的值。所以当我们使用自动布局,视图又希望根据内容的来决定自身大小的话,重写这个属性是最优雅的方法了!

57.NSArray<__kindof UILayoutGuide *> *layoutGuides(IOS 9.0以后可使用)

只读,当前视图添加的UILayoutGuide对象的集合。

58.NSLayoutXAxisAnchor *leadingAnchor(IOS 9.0以后可使用)

只读,新的约束方法,用于替换原生NSLayoutConstraint这一套惨绝人寰的使用方法……

头部的布局锚点,和semanticContentAttribute属性有关联,也就是“阅读习惯”,从左往右,还是从右至左布局。和左边leftAnchor的区别就是根据阅读习惯的设置会发生改变。

leftAnchor,rightAnchor等等不在此特别说明,介绍NSLayoutAnchor时再说吧。

59.BOOL hasAmbiguousLayout(IOS 10.0以后可使用)

只读,“有模糊的布局”,作用是可以用于检查约束是否具有唯一性,或者缺少。如果返回YES则代表约束是模糊的,可能会导致显示位置不正确。为什么不在编译时就进行提示呢?苹果文档中原文是这样的“If there aren't enough constraints in the system to uniquely determine layout, we say the layout is ambiguous. For example, if the only constraint in the system was x = y + 100, then there are lots of different possible values for x and y. This situation is not automatically detected by UIKit, due to performance considerations and details of the algorithm used for layout.

The symptom of ambiguity is that views sometimes jump from place to place, or possibly are just in the wrong place.

-hasAmbiguousLayout runs a check for whether there is another center and bounds the receiver could have that could also satisfy the constraints.

中提到了“由于性能考虑和布局所用算法的细节,UIKit不会自动检测到这种情况。”。所以如果布局发现有问题了,看一下这个值来确定一下是否因为约束缺少或有问题。约束错了的话那就得自己找了……聊胜于无的功能吧。

60.NSString *restorationIdentifier(IOS 6.0以后可使用)

可修改,恢复标识符,用于退出系统后再启动的系统视图恢复。如果要使用恢复功能的话,该值必须设置,且不能为nil,否则恢复机制会忽略该视图。一般来说设置当前的对象名就可以了。NSStringFromClass(self.class)

61.UIUserInterfaceStyle overrideUserInterfaceStyle(IOS 13.0以后可使用)

可修改,作用就是推出的夜晚模式和白天模式的配置。通过设置可以设置某个特定的视图。但该视图的子视图也将遵循该设置。没什么特殊需要的话,直接设置window的这个属性就完了。

62.UIContentSizeCategory minimumContentSizeCategory

可修改,对于动态类型大小的支持,当前视图的最小值,可以设置为nil,等于没有限制。例如系统设置里面文字大小,我们设置了最小值,也就是如果系统设置的比我们的值小,那么该视图将按照minimumContentSizeCategory这个属性设置的最小值显示,而不是按照系统设置的。

63.UIContentSizeCategory maximumContentSizeCategory

可修改,对于动态类型大小的支持,当前视图的最大值,可以设置为nil,等于没有限制。同上。

64.NSString *appliedContentSizeCategoryLimitsDescription

只读,一个字符串,内容是当前视图的层级关系(当前视图的父视图一直到window)。还有UIContentSizeCategory的值苹果文档的说法是用于调试目的。

    
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 cloud@ksuyun.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.daxuejiayuan.com/4721.html