我有一个视图设置,其中布置了4个UITextField和约束设置,因此它在所有设备上看起来都不错,并且可以按预期工作。我有一个问题,如果我使用TextField.text = @“一些长文本”来设置文本;或[TextField setText:@“一些长文本”]; 它会使文本字段扩展其宽度以适合文本的长度,然后由于约束,其他文本字段也将重新调整大小。
如何停止调整文本字段的大小?我想要的是字段保持不变,并且用户可以滚动文本(如果他们想结束文本的话)?
谢谢
您只需要更改约束即可。给UITextField一个显式的内部Width约束(或使用约束以其他方式设置或限制其宽度),然后事情就会按照您的期望进行。
请记住,通常,视图的大小和位置的所有方面都必须由其约束明确配置。但是,现在,您的文本字段没有Width约束,因此它的宽度基于其文本内容(即,它使用内部内容大小来获取其宽度)。忽略Width约束不是非法的,这就是为什么Interface Builder在设置约束时不会抱怨的原因-但这是合法的,因为存在提供宽度的内在内容大小,因此这意味着如果内部文字发生变化。如果那不是您想要的,那就不要这样做-而是提供一个显式的Width约束。
(类似地,文本字段的隐式高度为30,这就是为什么您不必赋予它Height约束的原因。该高度不会随文本内容而变化,因为与UILabel不同,文本字段不会包装其高度文字多行)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句