Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何复制UILabels automatic preferredMaxLayoutWidth_Ios_Uiview_Autolayout - Fatal编程技术网

Ios 如何复制UILabels automatic preferredMaxLayoutWidth

Ios 如何复制UILabels automatic preferredMaxLayoutWidth,ios,uiview,autolayout,Ios,Uiview,Autolayout,在“自动布局”中是否有一种方法可以在我自己的UIView子类中将设置preferredMaxLayoutWidth的效果复制到“自动布局”中 我多次遇到这样的情况,即我的视图的固有高度取决于其宽度,非常类似于UILabel,其中numberOfLines=0 例如,包含标签的视图,或在需要时将项目包装到新行的图例视图(如集合视图) 在intrinsicContentSize中,不允许访问当前帧,因此需要使用外部属性,如preferredMaxLayoutWidth。但是手动设置这一点很繁琐,而且

在“自动布局”中是否有一种方法可以在我自己的
UIView
子类中将设置
preferredMaxLayoutWidth
的效果复制到“自动布局”中

我多次遇到这样的情况,即我的视图的固有高度取决于其宽度,非常类似于
UILabel
,其中
numberOfLines=0

例如,包含标签的视图,或在需要时将项目包装到新行的图例视图(如集合视图)


intrinsicContentSize
中,不允许访问当前帧,因此需要使用外部属性,如
preferredMaxLayoutWidth
。但是手动设置这一点很繁琐,而且容易出错,使用UILabel就没有必要了(现在不再需要了;因为iOS8IIRC?)


我是否可以在自定义的
UIView
子类中执行此操作,以便自动推断此属性的值(例如,通过检查约束或类似内容)?

preferredMaxLayoutWidth
告诉auto layout您希望多行文本如何换行。不确定这将如何应用于没有包装文本的
UIView
(或其他UI元素)?也许你可以试着描述一个具体的例子,说明你将如何实现它?一个带有标签的表格可以是一个例子,或者是一个图例。我会更新这个问题。好的-我想我明白你的意思了。。。有趣的问题-值得思考。。。