iOS:自定义 UITextField 的 inputView 大小
Posted
技术标签:
【中文标题】iOS:自定义 UITextField 的 inputView 大小【英文标题】:iOS: Customise UITextField's inputView size 【发布时间】:2012-11-15 09:27:01 【问题描述】:我需要自定义UITextField's
inputView
的大小。我分配给inputView
的自定义视图的大小已经是260x220
,但inputView
仍显示为260x768(Portrait
) 和260x1024(Landscap
)。我尝试更改 inputView's
Frame
但仍然没有变化。无论如何我可以修改UITextField's
inputView
Frame
使其只占用底部屏幕的一定空间?
textField.inputView = numPadViewController.view;
[textField.inputView setFrame:CGRectMake(0, 0, 260, 220)];
[编辑]
来自this,我也尝试过关注,但没有成功!
numPadViewController.view.autoresizingMask = UIViewAutoresizingNone;
textField.inputView = numPadViewController.view;
【问题讨论】:
***.com/questions/6042060/…的可能重复 【参考方案1】:你在用笔尖吗?确保笔尖中的框架设置正确。此外,您不能设置inputView
的框架。您只能将view
的框架设置为inputView
BEFORE,您将其设置为inputView
。否则我需要查看更多代码。
另外,最好让inputView
具有相同的屏幕宽度(768 纵向,1024 横向)。您仍然可以将视图居中,并在两侧留出透明空间。希望有帮助!
【讨论】:
是的,我正在使用 NIB。在 NIB 本身中查看 260x220 并具有清晰的背景颜色。我在自动调整为左角的视图中有另一个完全相同大小的视图。使用此设置,用户只能看到 260x220 的左侧输入视图,其余宽度(261 到 768)是透明的,但它无法识别那么多区域的用户交互,这很糟糕!这就是为什么我希望我的输入视图调整大小为 260x220 并保持在左上角! 那你为什么不直接把inputView
传递给右侧的父视图呢?
我有主要的父视图,它有左、上、下的孩子。左孩子需要自定义输入视图。底部的孩子是 UITableViewController 所以当我有 inputview 可见时,我可以在下半部分 tableview 上滚动。我可以将触摸转发给我的父母,但我认为它不会滚动 uitableview?无论如何,如果无法调整 inputview 的大小,那么我将继续并在 inputview 可见时禁用顶部和底部的用户交互,这对我有用。
@msgambel 有没有办法在将视图设置为 inputView 后更改视图的框架(更具体地说是大小)?我的应用程序中有一个功能应该允许用户展开/折叠自定义键盘,但我无法实现。
@rokridi 有两种方法可以实现该功能。第一个是有一个展开/折叠按钮,使UITextField
处于活动状态/处于活动状态,从而调出自定义inputView
。这应该为您的应用程序提供展开/折叠功能。或者,您可以在动画展开/折叠自定义视图完成后重置inputView
。这将重置框架,并为您提供所需的效果。希望有帮助!以上是关于iOS:自定义 UITextField 的 inputView 大小的主要内容,如果未能解决你的问题,请参考以下文章
iOS用UITextField自定义UISearchBar遇到的布局问题
iOS:如何从 tableview 的自定义单元格中的 UITextField 访问值
快速滚动ios时自定义单元格中的UITextField值出现问题