簡體   English   中英

如何在Interface Builder中將UITableViewCell的內容視圖轉換為普通的UIView?

[英]How to convert a UITableViewCell's content view to a normal UIView in Interface Builder?

我在Interface Builder中設計了一個復雜的UITableViewCell,它具有許多子視圖和約束。 問題在於它們很多都是內容視圖的直接子代。 現在,我想在內容視圖和所有子視圖之間插入一個UIView。

或者,考慮這種情況的另一種方式是想象我想將所有單元格的內容包括在沒有表視圖的普通UIViewController中。

無需手動重新創建所有約束的最簡單方法是什么?

非常簡單,您只需要選擇所有視圖,然后在上方菜單中選擇EDITOR-> EMBED IN-> VIEW
唯一的問題是它將添加20pts的填充。 檢查此答案以獲取更多詳細信息

我不確定是否有人編寫了此解決方案,但是該解決方案有點笨拙。 如果要將UITableViewCell contentView轉換為基本視圖,則必須執行以下步驟:

  1. 以源代碼和XML文件的形式打開情節提要。 您可以在編輯此文件時使用一些XML編輯器來幫助您
  2. 在情節提要XML文件中查找<tableViewCell>元素的數組
  3. <tableViewCell>標簽內,找到<tableViewCellContentView>元素。 將其內容復制到XML文件中的某個位置(最好的主意是<subviews>元素,以避免在編輯XML文件時出現一些錯誤)
  4. <tableViewCellContentView key="contentView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" 。我相信這一步中生成的XML有一些可能的差異,但是原理很明顯,只需創建一個空視圖即可檢查該空視圖的有效XML設置。
  5. </tableViewCellContentView>轉換為</view>

完成這些步驟之后,您便可以在情節提要中編輯視圖,並且可以根據需要從表中刪除原始單元格。

暫無
暫無

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

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