在layoutSubviews
方法中處理旋轉(zhuǎn),可以通過監(jiān)聽設(shè)備旋轉(zhuǎn)的通知來實現(xiàn)。具體步驟如下:
viewDidLoad
方法中添加下面代碼:NotificationCenter.default.addObserver(self, selector: #selector(deviceRotated), name: UIDevice.orientationDidChangeNotification, object: nil)
deviceRotated
方法,該方法會在設(shè)備旋轉(zhuǎn)時被調(diào)用:@objc func deviceRotated() {
// 更新布局
setNeedsLayout()
}
layoutSubviews
方法中處理旋轉(zhuǎn)相關(guān)的布局調(diào)整:override func layoutSubviews() {
super.layoutSubviews()
// 根據(jù)當(dāng)前設(shè)備的方向進行布局調(diào)整
if UIDevice.current.orientation.isPortrait {
// 豎屏布局
} else {
// 橫屏布局
}
}
通過以上步驟,在設(shè)備旋轉(zhuǎn)時會觸發(fā)layoutSubviews
方法重新布局子視圖,從而實現(xiàn)在layoutSubviews
中處理旋轉(zhuǎn)的效果。