[英]Why UITableViewCell's overlap each other?
我有一個簡單的UITableViewCell
包含UIImageView
和 3 UILabel
的。 在這里,我提供了一個正常的單元格外觀來深入了解問題:
正如您所注意到的,描述標簽可能很長,所以我將numberOfLines
設置為 0。但是當該描述為空或很小時就會出現問題。 細胞開始相互重疊。 以下是描述為空或較小時的外觀:
如果您注意到,圖片會相互重疊。 我對視圖的約束如下:
UIImageView
: 通向超級視圖,寬高,垂直居中
BookName(頂部的粗體標簽):頂部和尾部到超級視圖,導致UIImageView
AuthorName( orange label ): top to BookName, trailing to superview, 通向UIImageView
描述(灰色標簽):尾部和底部到超級視圖,頂部到 AuthorName 並導致UIImageView
(書本圖片)
我還提供了Content Hugging and Compression Resistance Priorities
。 我只為UILabel
提供了它們。 我為描述標簽設置了最小的以使其增長和縮小。
我做了什么來解決問題?
我意識到如果描述為空,單元格會變小。 換句話說,標簽決定了單元格的大小。 此外,考慮到UIImageView
僅垂直居中這一事實,我認為我的約束不正確。 所以,我決定擺脫垂直居中 UIImageView 。 我只為UIImageView
設置了頂部、前導、寬度和高度約束。 其他約束與上述相同。 但這沒有幫助,結果如下:
如您所見, UIImageView
超出了單元格邊界。 我認為這是因為我沒有為UIImageView
提供底部約束。 但我提供它作為描述。 因此,下一次嘗試實際上是提供底部約束。 因此,我為UIImageView
提供了頂部、左側、底部和寬度約束。 我留下了相同的其他約束。 最初,結果令我感到驚訝。 以下是沒有描述時單元格的外觀:
看起來,一切都很好(無論如何,圖像太小,它試圖適應由標簽控制的單元格大小),但是在滾動UITableView
,單元格正在改變它們的大小並以某種方式更新它們的約束。 這是發生的事情:
我也嘗試過設置estimatedRowHeight
和自動尺寸,但沒有幫助,我不認為問題是通過這種方式解決的。 因此,任何幫助表示贊賞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.