[問題] 關於autolayout下 取得frame消失

看板MacDev作者時間7年前 (2017/03/31 22:04), 7年前編輯推噓5(506)
留言11則, 7人參與, 最新討論串1/1
viewDidLayoutSubviews 代表 layout完成, //img為圖片 super.viewDidLayoutSubviews() print(img.frame.size.width) 當我手機一旋轉 取得的寬度卻是錯誤的, 只有剛載入取得的width是正確, 一旋轉就錯誤, 往後的旋轉都是錯誤 後來發現要在裡面加上layoutIfNeeded就正常 super.viewDidLayoutSubviews() self.myView.layoutIfNeeded() print(img.frame.size.width) 有人知道是什麼原因嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.181.227 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1490969054.A.A81.html ※ 編輯: herbacin (114.34.181.227), 03/31/2017 22:04:32

03/31 23:04, , 1F
You should not call didLayoutSubview by yourself
03/31 23:04, 1F

03/31 23:36, , 2F
旋轉時有呼叫 viewDidLayoutSubviews 只是觸發的值錯誤
03/31 23:36, 2F
※ 編輯: herbacin (114.34.181.227), 03/31/2017 23:37:40

04/01 00:42, , 3F
不太清楚 請問1樓是什麼意思 不太清楚
04/01 00:42, 3F

04/01 02:50, , 4F
他是call super又不是在程式裡主動call
04/01 02:50, 4F

04/01 05:03, , 5F
不好意思看錯了
04/01 05:03, 5F

04/01 11:30, , 6F
可能就實作改了吧 類似討論串:
04/01 11:30, 6F


04/01 15:38, , 8F
這篇我也有看過
04/01 15:38, 8F

04/03 12:36, , 9F
拿frame之前,請先call layoutIfNeed。
04/03 12:36, 9F

04/06 18:47, , 10F
所以viewDidLayoutSubview也不是完成所以的佈局囉?
04/06 18:47, 10F

04/06 22:54, , 11F
這問題超煩的 layoutIfNeed有不小的performance開銷
04/06 22:54, 11F
文章代碼(AID): #1Otc7Ug1 (MacDev)
文章代碼(AID): #1Otc7Ug1 (MacDev)