簡體   English   中英

如何在Swift中強制顯示更新

[英]How to force display update in Swift

我正在制作一個Tic Tac Toe應用程序,我希望在加載視圖后將面板居中放置。

我已經做了一個centerBoard()函數,該函數在viewDidLoad()中被調用。 這是函數的代碼:

func centerBoard() {
    print("centerBoard() triggered")
    let centerX = (outerView.frame.size.width)/2
    boardView.center = CGPointMake(centerX,250)
    if boardView.center == CGPoint(x: centerX,y: 250) {
        print("centerBoard() successful")
    }
    boardView.setNeedsLayout()
    boardView.setNeedsDisplay()
}

但是,加載視圖時,僅在按下測試按鈕時,板才不會改變位置,盡管運行的是完全相同的代碼。 我做了if語句,以檢查電路板的中心是否已更新,並且每次在加載視圖和按下按鈕時都成功打印一次。

將viewDidLayoutSubviews中的中心坐標輸出到控制台。 可能是您的設置被自動布局覆蓋,在調用viewDidLoad之后,多次調用了viewDidLayoutSubviews。 通過自動布局系統設置視圖的中心,或者如果不想使用xib / storyboard,請關閉自動布局。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM