我编写了一个自定义输入视图,用于替换UITextView
的标准键盘。如果我将自定义UIView
指定为UITextView
的{{1}},则会在纵向和横向模式下按预期工作。
当我旋转设备时会出现问题 - 每当我这样做时,我的自定义inputView
会扩展以填满整个屏幕,而不是仅仅覆盖键盘。我没有任何自定义调整大小代码 - 我只是将UIView指定为UITextView的inputView属性,然后旋转设备。
当我旋转设备时,如何让自定义键盘视图占用普通键盘占用的空间?
答案 0 :(得分:5)
来自Apple文档:
您可以灵活地定义输入视图或输入附件视图的大小和内容。虽然这些视图的高度可以是您想要的,但它们应该与系统键盘的宽度相同。如果UIKit在其自动调整掩码中遇到带有UIViewAutoresizingFlexibleHeight值的输入视图,它会更改高度以匹配键盘。
答案 1 :(得分:2)
如果我记得,autoresizingMask
默认为UIViewAutoresizingNone
。您autoresizingMask
应为UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin
。
答案 2 :(得分:2)
我有这个问题。解决这个问题的方法是:
打开键盘的viewcontroller .m文件
找到- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
方法
让它返回NO。
我的猜测是视图正在进行双重旋转。
答案 3 :(得分:1)
使你的inputViews autoresizingMask = UIViewAutoresizingNone; 使用不同值的autoresizingMask(特定于版本)将有所帮助。
以下是一些细节,我为iPad做了一些时间(可能会对你有帮助):
autoresizemask
至少应在所有目标中autoresizeflexiblewidth
。 default(initial)
,则将Rect设置为autoresizeflexibleheight
高度autoresizeflexibleheight
,则将Rect设置为不正确的坐标(x,y)不要使用autoresizeflexibleheight
掩码进行选择器视图。 inputview
不是选择器视图,则应关闭其autoresizemasks
flexibleheight
。