2016-02-25 6 views
1

Я хочу отобразить один вид, когда он находится в портретном режиме, и другой вид в альбомном режиме. Является ли это возможным? Я пробовал этот код, но просмотр перекрывается. Как это исправить?Как отображать представление при изменении ориентации быстро?

override func didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation) { 
    let app = UIApplication.sharedApplication() 

    if (app.statusBarOrientation.isLandscape) 

     var imageView : UIImageView 
     imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 1300 
      , height: 50)) 
     imageView.contentMode = UIViewContentMode.ScaleToFill 
     //  UIGraphicsBeginImageContext(self.view.frame.size) 
     imageView.image = UIImage(named:"Header") 
     self.view.addSubview(imageView) 

     UIGraphicsBeginImageContext(self.view.frame.size) 
     UIImage(named: "Landscape")?.drawInRect(self.view.bounds) 
     let image: UIImage = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     self.view.backgroundColor = UIColor(patternImage: image) 
     display1() 

    if (app.statusBarOrientation.isPortrait) 

     var imageView : UIImageView 
     imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 800 
      , height: 50)) 
     imageView.contentMode = UIViewContentMode.ScaleToFill 
     //  UIGraphicsBeginImageContext(self.view.frame.size) 
     imageView.image = UIImage(named:"Header") 
     self.view.addSubview(imageView) 

     UIGraphicsBeginImageContext(self.view.frame.size) 
     UIImage(named: "background")?.drawInRect(self.view.bounds) 
     let image: UIImage = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     self.view.backgroundColor = UIColor(patternImage: image) 
     print(String.self, "sandeep potrait") 
     displayKeyboard() 
+0

@nhgrif нет его не копия этого партнера ссылки, это то, что проблема я столкнулся, как я создал кнопку- 3X2 (столбец строки x) в портретном режиме, и он должен перейти в 2x3 в ландшафтном режиме, но что происходит после входа в ландшафтный режим, просмотрите контроллер над записью вида, что означает, что после пейзажной ориентации я могу видеть как 3x2, так и 2x3 вид в одном представлении его сложная вещь – Sandpie

+0

Связанный вопрос - это упрощенная версия этой проблемы. – nhgrif

ответ

2

Необходимо убрать или удалить представление, которое вы не хотите видеть в текущей ориентации.

Для этого необходимо создать свойства этих взглядов и что-то вроде:

var portraitImageView: UIImageView? 
var landscapeImageView: UIImageView? 

func ... { 
    if (app.statusBarOrientation.isLandscape) { 
     var imageView: UIImageView 
     ... 
     self.view.addSubview(imageView) 

     self.landscapeImageView = imageView 

     self.portraitImageView.removeFromSuperview() 
     self.portraitImageView = nil 
    } else { 
     ... 
    } 
} 
+0

@Anoton Тютин nope его не работает ни один другой вариант PLS – Sandpie

+0

@Sandpie В чем проблема? правильно ли вы меняете переменную в случае 'else'? –

+0

@ MichaëlAzevedo Я столкнулся, как я создал 6 кнопок 3X2 (строка x столбец) в портретном режиме, и он должен измениться на 2x3 в ландшафтном режиме, но что происходит после входа в альбомный режим, просмотрите контроллер над написанием вида, который означает, что после пейзажной ориентации я могу видеть как 3x2, так и 2x3 в одном представлении его сложную вещь – Sandpie

Смежные вопросы