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(),大小仍然返回默认值。 如何在更改方向后设置框架尺寸?
答案 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)
我不确定这会解决您的问题,但您应该在viewWillLayoutSubviews
和viewWillTransition
答案 2 :(得分:0)
您可以使用UITraitCollection。请参阅此链接 How to translate this objective c traitCollection to swift?
不要在viewWillLayoutSubviews()函数中调用任何内容。
希望它对你有所帮助。