TextField 子视图未通过 UITableViewCell 框架大小更改调整大小

Posted

技术标签:

【中文标题】TextField 子视图未通过 UITableViewCell 框架大小更改调整大小【英文标题】:TextField subview not resizing w/ UITableViewCell frame size change 【发布时间】:2012-11-05 15:29:31 【问题描述】:

有一个带有 TableViewController 的故事板,它有一个分组的表格视图。在第一部分,我希望单元格的宽度小于全屏。为了完成后者,我有一个带有以下方法的自定义 UITableViewCell 类:

- (void)setFrame:(CGRect)frame frame.origin.x += NAME_TABLE_VIEW_INSET; frame.size.width -= NAME_TABLE_VIEW_INSET; [超级 setFrame:frame];

效果很好。我遇到的问题是,我拖入情节提要单元格的 UITextField 子视图不会自动将其宽度调整为新的单元格框架大小。

我尝试对 UITextField 进行子类化并确保正确设置了 autoResizingMask,并且我尝试在上面的 setFrame 方法中使用 [super layoutSubviews]。这些方法都不起作用。

关于如何让文本字段自动调整其宽度同时仍使用此情节提要方法的任何建议?

【问题讨论】:

您是否使用Contraints(即您的故事板中启用了autoLayout)?您是否尝试过手动调整UITextField;如果你创建了一个自定义类,IBOutletUITextField 然后你的setFrame 可以调整它。 感谢您的反馈。是的,情节提要中启用了约束。我将改为在网点上查看 setFrame。会看到的。 【参考方案1】:

解决方案是在表格视图控制器提供的表格视图的标题中添加一个单独的表格视图。具体来说,在 IB 中的 table view 的顶部添加一个 view 对象;将表视图作为子视图添加到该视图中;更改新表格视图单元格的宽度。

请注意,这个问题的存在只是因为我想使用一个表格视图控制器,它将每个单元格默认为屏幕的宽度。可以使用视图控制器,但是您不能添加带有静态单元格的表格视图作为子视图。

【讨论】:

以上是关于TextField 子视图未通过 UITableViewCell 框架大小更改调整大小的主要内容,如果未能解决你的问题,请参考以下文章

swift如何使用TextField添加子视图TagView编程?

状态从父级更改为子级,但未反映到React Hook中的TextField中

TextField 未添加到 ScrollView

记录 UIScrollView 的子视图会显示未添加的子视图

子容器视图中的 UILabel 未更新

子视图中的 ListView 未正确刷新