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