2
我想向自定義UITableViewCell的子視圖添加陰影。子視圖用作單元格的可見背景(單元格的根視圖清晰)。框架不會更新UITableViewCell的自動佈局子視圖
單元格使用xib在界面生成器中進行佈局。子視圖的佈局使用自動佈局約束到單元格的四個邊緣。
對於不同寬度的設備,子視圖本身似乎自動調整好。從堆棧溢出研究,我想我必須把我的框架相關代碼放在layoutSubviews方法中。我把有我的影子繪圖代碼:
layer.shadowPath = [[UIBezierPath bezierPathWithRoundedRect:subView.bounds cornerRadius:3.0]CGPath];
的影子出現,但只對幀的大小將被重新調整之前,一些調試後,似乎是視圖框矩形,在Interface Builder可修改的常數(對於自動佈局視圖控制器,這實際上是灰色的:@)。
從進一步調試看來該子視圖幀從不更新,即使細胞視圖幀是。
layoutSubviewscalled, parent view frame size: 180 subview frame size: 148.000000
layoutSubviewscalled, parent view frame size: 375 subview frame size: 148.000000
是這樣的(這是由印刷視圖的在layoutSubviews框架的寬度進行)錯誤?我錯過了什麼嗎?我能做些什麼來譴責這一點?
非常感謝您的回覆。我之前回答了這個問題,但沒有耐心。 這似乎工作,但只在第三次layoutSubviews呼叫。任何想法如何我只能在視圖更新後繪製陰影? – 2014-10-07 17:14:00
@SameerJJ事實證明我也遇到了自動佈局的問題,在我的情況下,現在我在初始化我的自定義UIScrollView之前調用'self.layoutIfNeeded()',在我的View Controller中(正如Apple文檔所述:_使用視圖接收消息作爲根視圖,這個方法設置從根開始的視圖子樹._)你嘗試過'[self setNeedsLayout]'後跟'[self layoutIfNeeded]''? – 2014-10-07 17:48:24
是的,我沒有嘗試,但它屈服了不成功。即使佈局最終返回正確的框架尺寸,它仍然總體上非常錯誤。我真的認爲蘋果公司需要在這裏站穩腳跟,讓自動佈局減輕工作負擔。我已經回到了這個單元格的編程視圖佈局。感謝您的幫助 – 2014-10-08 21:14:58