2014-12-03 58 views
2

錯誤地調整大小所以我更新到Xcode 6.1更早和6.1.1今天。我注意到在Storyboard中使用Static/Prototype UITableViewCell(或Prototype UICollectionViewCell)時存在問題。在設備/模擬器上運行時,某些Autoresizing蒙版的子視圖將被錯誤調整大小。靜態或原型UITableViewCell子視圖在故事板上的Xcode 6.1.1,iOS 8.1 SDK

UISlider as a subView of the Static UITableViewCell

UISlider作爲靜態的UITableViewCell

Autoresizing rule is Flexible Width. Or Flexible LeftMargin also causes the problem.

規則自動調整大小的子視圖是靈活的寬度。或靈活的LeftMargin也會導致問題。

Observing the Slider is too long, went off the screen the the right

五合一滑塊過長,超出屏幕的右側

我已經提交了一個bug報告給蘋果公司。希望很快得到答覆。

+0

是否有人更新到Xcode 6.1.1並使用了UICollectionViewCell呢? – thkeen 2014-12-10 08:01:17

+0

發生相同的..在這個解決方案? – Frade 2015-06-26 17:32:40

回答

2

我有同樣的問題,並找到了適合我的解決方案。看起來Xcode不是(總是)記錄表格視圖單元的初始幀大小及其內容視圖。

如果在其他編輯器(最好用Xcode中關閉)打開故事板,並看看你的細胞,你應該找到以下內容:

<tableViewCell ...> 
    <autoresizingMask .../> 
    <tableViewCellContentView ...> 

和密鑰的一些屬性上面已經被省略簡潔。上面缺少的是tableViewCelltableViewCellContentViewrect鍵。自動調整取決於初始幀大小以確定從右側/底部的偏移量。如果沒有初始幀大小(由rect鍵給出),初始幀計算爲0,0,0,0,它不會影響錨定到頂部或左側的項目,但會影響錨定到右側的項目(當然) /底部。

要解決該問題,確保有一個(正確)rect鍵每tableViewCelltableViewCellContentView,如:

<tableViewCell ...> 
    <rect key="frame" x="0.0" y="0.0" width="320" height="44"/> 
    <autoresizingMask .../> 
    <tableViewCellContentView ...> 
     <rect key="frame" x="0.0" y="0.0" width="320" height="43"/> 

如果你有一個電池啓用附屬視圖,你可能需要減少內容視圖的該單元格的寬度。 Xcode中顯示的寬度/高度(灰色)表示內容視圖應該放入故事板(手動)。

我應該補充說,編輯時Xcode不會從故事板中刪除這些rect鍵,因此編輯完成後故事板仍然應該完全可以用Xcode編輯。

+0

這是一個了不起的發現!問題也出現在''上。 – Wex 2015-02-23 11:22:39