iOS 8风景肖像模式中的自定义键盘
问题描述:
我想在iOS 8中创建自定义键盘。我想在手机旋转到风景模式时更改它的大小。iOS 8风景肖像模式中的自定义键盘
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration
{
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
if ((toInterfaceOrientation==UIInterfaceOrientationPortrait) || (toInterfaceOrientation==UIInterfaceOrientationPortrait))
{
[def setObject:@"No" forKey:@"LandScape"];
[def synchronize];
islandscapemode = NO;
NSLayoutConstraint *_heightConstraint =
[NSLayoutConstraint constraintWithItem: self.view
attribute: NSLayoutAttributeHeight
relatedBy: NSLayoutRelationEqual
toItem: nil
attribute: NSLayoutAttributeNotAnAttribute
multiplier: 0.0
constant: 266];
[self.view addConstraint:_heightConstraint];
}
else
{
[def setObject:@"Yes" forKey:@"LandScape"];
[def synchronize];
NSLayoutConstraint *_heightConstraint =
[NSLayoutConstraint constraintWithItem: self.view
attribute: NSLayoutAttributeHeight
relatedBy: NSLayoutRelationEqual
toItem: nil
attribute: NSLayoutAttributeNotAnAttribute
multiplier: 0.0
constant: 266];
[self.view addConstraint:_heightConstraint];
self.view.backgroundColor=[UIColor greenColor];
islandscapemode = YES;
}
// [self determineKeyboardNib:toInterfaceOrientation];
}
但它不起作用。我该怎么办?
答
willRotateToInterfaceOrientation:duration:
已弃用iOS中8相反,尝试使用
viewWillTransitionToSize:withTransitionCoordinator:
iOS Developer Library: viewWillTransitionToSize
此功能可让您在容器的观点的新的大小和过渡协调员的参考。然后,您可以将键盘调整为新的屏幕大小。
还有一个附加到过渡协调器的功能,允许您在屏幕旋转时为视图添加动画效果,并且/或者完成屏蔽块在屏幕旋转后执行某些操作。
iOS Developer Library: UIViewControllerTransitionCoordinator
animateAlongsideTransition:completion:
和
animateAlongsideTransitionInView:animation:completion:
至于你原来的问题,你有没有尝试在视图上调用layoutIfNeeded您设置的限制后?
我应该怎么做才能在景观模式下减小视图的大小? – Ikambad 2014-09-01 12:12:31
“不起作用”是什么意思?键盘保持相同的大小?你有错误信息?装置在你的手中爆炸,你用一只好手打出这个问题? – skrrgwasme 2014-09-18 23:37:12
您应该在 - [viewDidLoad]中,将约束添加到视图中,只更改约束常量值,而不是添加会导致约束错误的新约束。在您的约束代码中,您应该设置超级视图以关闭自动调整 – 2015-01-28 01:51:04