如何以编程方式使用自动调整大小掩码为固定左边距和灵活右边距设置文本字段

Posted

技术标签:

【中文标题】如何以编程方式使用自动调整大小掩码为固定左边距和灵活右边距设置文本字段【英文标题】:How to set a text field for fixed left margin & flexible right margin using auto resizing mask programmatically 【发布时间】:2015-12-07 02:03:03 【问题描述】:

我希望我的文本字段在所有方向都有固定的左侧边距和灵活的右侧边距。左侧固定边距运行良好,但右侧灵活边距运行不正常。这是我的代码

tf.frame=CGRectMake(startX, startY, [UIScreen mainScreen].bounds.size.width-40, 44);
[tf setAutoresizingMask:UIViewAutoresizingFlexibleWidth];

问题是,当我使用 UIViewAutoresizingFlexibleWidth 时,它没有考虑我为设置文本字段宽度提供的 40 像素的间隙,而文本字段将全屏宽度作为其尺寸。

【问题讨论】:

始终根据父级的边界设置视图的框架。不要基于屏幕尺寸。 【参考方案1】:

如果你想要一个灵活的右边距,那么设置掩码:

tf.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;

但我怀疑你还有其他问题。您正在根据主屏幕的大小设置文本字段范围。主屏幕的大小可能与文本字段的超级视图的大小没有任何关系,具体取决于该代码的运行时间。

【讨论】:

视图默认具有灵活的右边距以及固定的左边距和固定宽度。 感谢@rmaddy...我通过根据 scrollView(superview) 宽度设置我的文本字段框架来修复它并且它有效..你们节省了我很多时间..

以上是关于如何以编程方式使用自动调整大小掩码为固定左边距和灵活右边距设置文本字段的主要内容,如果未能解决你的问题,请参考以下文章

调整大小后使用自动布局以编程方式居中 UIImageVIew

如何以编程方式使 ListView 的列自动调整大小?

如何以编程方式为其父视图添加视图大小?

如何自动调整标签大小以适应固定宽度的容器?

Android - 如何自动调整 TextView 的大小以适合固定高度的容器?

以编程方式调整 UITextField 的大小会自动恢复为旧大小