我正在尝试将自定义键盘附加到UITextField,键盘将响应不同的视图方向(横向,纵向等)。简而言之,问题是当键盘确实显示时,当我旋转设备时响应视图方向时,键盘的尺寸都搞砸了,我不太确定如何设置键盘框架/边界正确。希望有人能帮到我!
这是我的设计:
键盘是从UIViewController的子类(来自xib)构建的。有两种视图:landscapeKeyboardView和portraitKeyboardView。
键盘通过属性“inputView”附加到UITextField。
键盘视图的旋转在函数中完成:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientationduration:(NSTimeInterval)duration
{
if ((toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight))
{
self.view = self.landscapeKeyboardView;
}else if((toInterfaceOrientation == UIInterfaceOrientationPortrait) || (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))
{
self.view = self.portraitKeyboardView;
}
}
旋转确实发生,但视图尺寸在旋转后全部搞砸了。我还尝试手动设置self.view或landscapeKeyboardView或portraitKeyboardView视图的框架或边界,但它们似乎都没有解决问题。
有谁知道如何解决这个问题?或者是否有更好的自定义键盘设计模式?
谢谢!
答案 0 :(得分:0)
您可能需要翻译CGRect以进行轮换。 UIView有许多用于转换rects和points的实例方法。它解释了另一个视图框架之外的视图(例如,找出键盘矩形的UIPopover下方有多远)以及旋转。 c onvertRect:fromView:只是一个例子,但它们都以'convert'开头。