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]; 
} 

但它不起作用。我该怎么办?

+0

我应该怎么做才能在景观模式下减小视图的大小? – Ikambad 2014-09-01 12:12:31

+2

“不起作用”是什么意思?键盘保持相同的大小?你有错误信息?装置在你的手中爆炸,你用一只好手打出这个问题? – skrrgwasme 2014-09-18 23:37:12

+0

您应该在 - [viewDidLoad]中,将约束添加到视图中,只更改约束常量值,而不是添加会导致约束错误的新约束。在您的约束代码中,您应该设置超级视图以关闭自动调整 – 2015-01-28 01:51:04

willRotateToInterfaceOrientation:duration: 

已弃用iOS中8相反,尝试使用

viewWillTransitionToSize:withTransitionCoordinator: 

iOS Developer Library: viewWillTransitionToSize

此功能可让您在容器的观点的新的大小和过渡协调员的参考。然后,您可以将键盘调整为新的屏幕大小。

还有一个附加到过渡协调器的功能,允许您在屏幕旋转时为视图添加动画效果,并且/或者完成屏蔽块在屏幕旋转后执行某些操作。

iOS Developer Library: UIViewControllerTransitionCoordinator

animateAlongsideTransition:completion: 

animateAlongsideTransitionInView:animation:completion: 

至于你原来的问题,你有没有尝试在视图上调用layoutIfNeeded您设置的限制后?