2015-12-07 5 views
1

Я работаю над приложением, которое имеет представление, которое расположено в разных местах в зависимости от размера экрана. Размер зависит от устройства. Я выбрал размер iPhone 5S. Мое приложение будет работать на iPad. Посмотрите, как был Swift код:Перерисовать вид внутри self.view на viewDidLoad() в swift?

class Main: UIViewController { 

    @IBOutlet var viewRect: UIView! 

    let DeviceHeigth:CGFloat = 1136/2 
    let DeviceWith:CGFloat = 640/2 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     calcviewRectViewInit() 

    } 

    func calcviewRectViewInit(){ 

     let space:CGFloat = 40 
     var frame: CGRect = viewRect.frame 
     frame.size.height = DeviceHeigth 
     frame.size.width = DeviceWith 
     frame.origin = CGPoint(x: toolView.frame.width + space, y: space) 

     viewRect.frame = frame 
    } 

При запуске, вид Rect не позиционируется в размерах и положениях - по коду. ViewDidLoad не перерисовывает представление во время выполнения.

Мой вопрос: Как можно перерисовать вид (viewRect) при запуске приложения?

+0

Как насчет замены '' DeviceWidth' с UIScreen.mainScreen(). Bounds.width' и 'DeviceHeight' with'UIScreen.mainScreen(). Bounds.height'? – Jojodmo

ответ

4

Вы должны использовать рамку супервизора в качестве ссылки.

Например:

var frame: CGRect = viewRect.frame 
frame.size.height = self.view.frame.height/2 
frame.size.width = self.view.frame.width/2 

я ссылается self.view вместо того, чтобы просто view для ясности. UIViewController имеет view Недвижимость. Это можно использовать, когда вы пытаетесь ссылаться на размер устройства.

Перед тем, как построить этот фрейм, вы должны убедиться, что у вас правильно установлена ​​рамка для toolView.

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

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/index.html

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

  • Нет связанных вопросов^_^