更改方向后更改大小

时间:2016-10-25 12:10:16

标签: ios swift size orientation

func SetDeviceFontSizes()
{
    ...
    imgView.frame.size.width = 375        
}

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    SetDeviceFontSizes()
}

override func viewWillLayoutSubviews() {
    SetDeviceFontSizes()
}

override func viewDidLoad() {
    super.viewDidLoad()
    SetDeviceFontSizes()
}            

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)        
    SetDeviceFontSizes()
}

我想设置标签和图片的尺寸(对于旧设备,这些尺寸会很小)。 但是当我改变设备的方向时,尽管函数SetDeviceFontSizes(),大小仍然返回默认值。 如何在更改方向后设置框架尺寸?

3 个答案:

答案 0 :(得分:0)

<activity
 android:name=".YourActivityName"
 android:theme="@style/CustomActionBarTheme"/>

在viewdidload()

中添加此行
var m_CurrentOrientation = UIDeviceOrientation()

在条件

中执行您的任务
 UIDevice.currentDevice().beginGeneratingDeviceOrientationNotifications()

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.deviceOrientationDidChange), name: .DidChangeNotification, object: nil)

答案 1 :(得分:0)

我不确定这会解决您的问题,但您应该在viewWillLayoutSubviewsviewWillTransition

中拨打超级电话

答案 2 :(得分:0)

您可以使用UITraitCollection。请参阅此链接 How to translate this objective c traitCollection to swift?

不要在viewWillLayoutSubviews()函数中调用任何内容。

希望它对你有所帮助。