据我所知,翻译自动调整大小蒙版会限制其允许我以编程方式设置视框
我只是将translationsAutoresizingMaskIntoConstraints设置为true,为什么约束会抱怨?
答案 0 :(得分:1)
您需要
translatesAutoresizingMaskIntoConstraints = false
当您在代码中创建约束时,此属性应为false,就好像该属性将添加其他约束一样,请参见Docs
如果此属性的值为true,则系统将创建一组约束,这些约束将复制视图的自动调整大小蒙版指定的行为。这也使您可以使用视图的框架,边界或中心属性来修改视图的大小和位置,从而可以在“自动布局”中创建基于框架的静态布局。
请注意,自动调整大小的蒙版约束完全指定了视图的大小和位置;因此,在不引入冲突的情况下,您不能添加其他约束来修改此大小或位置。如果要使用“自动布局”来动态计算视图的大小和位置,则必须将此属性设置为false,然后为视图提供一组无歧义,无冲突的约束。
默认情况下,以编程方式创建的任何视图的属性都设置为true。如果在Interface Builder中添加视图,则系统会自动将此属性设置为false。
答案 1 :(得分:1)
设置. translatesAutoresizingMaskIntoConstraints = true
不会不禁用自动布局。
它告诉自动布局将框架设置和.autoresizingMask
属性翻译成约束。
您仍然必须提供有效的框架,以避免冲突/破坏约束警告。
答案 2 :(得分:1)
translatesAutoresizingMaskIntoConstraints = true 它告诉自动布局将框架设置和.autoresizingMask属性转换为约束。 为什么此警告突然出现? 因为此行将框架布局转换为约束,在这种情况下,编译器已经删除了所有旧约束,并开始转换框架以对其进行约束以仅找到高度约束 仍然需要X,Y有两个约束才能消除警告 您仍然必须提供有效的框架,以避免冲突/破坏约束警告。