簡體   English   中英

單元格中的動態高度問題在iPhone6和iPhone6 plus中

[英]Dynamic height in cell Issue in iPhone6 and iPhone6 plus

我正在實現一個功能,其中我的單元格的所有標簽都已根據包含每個標簽的文本進行了調整。我已經在RayWanderlich教程的幫助下實現了這一功能,並且它適用於iOS 4的iPhone 4s,5和5s。 如下圖所示,其中顯示了帶有iOS 8.1的iPhone 5s模擬器

在此輸入圖像描述

當我用iPhone 6或iPhone 6運行我的應用程序時,我得到了意想不到的行為,如下圖所示,顯示了iPhone 6模擬器

在此輸入圖像描述

iPhone 6 plus模擬器

在此輸入圖像描述

我創建了兩個自定義單元格nib文件,一個用於iPhone 4,4s,5和5s,第二個用於iPhone 6和6 plus。 由於我是自動布局的新手,我設置了兩個筆尖相同的約束。 我正在下面的圖像中顯示具有設置約束的自定義單元格nib文件。

iPhone 4,4s,5和5s nib文件快照

在此輸入圖像描述

iPhone 6和iPhone 6以及自定義單元格nib文件快照

在此輸入圖像描述

我還使用了以下代碼片段,其中單元格已使用動態高度調整大小。 該代碼適用於iPhone iPhone 4(適用於iOS 7),4s,5和5s(適用於iOS 7和iOS 8和8.1),但不適用於iPhone 6和iPhone 6 plus。

代碼片段

- (CGFloat)calculateHeightForConfiguredSizingCell_3:(MemberListTableViewCell_WithoutImage_3_iPhone *)sizingCell {


    sizingCell.bounds = CGRectMake(0.0f, 0.0f, CGRectGetWidth(self.tblView.frame), CGRectGetHeight(sizingCell.bounds));

    [sizingCell setNeedsLayout];
    [sizingCell layoutIfNeeded];

    CGSize size = [sizingCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];

    //CGSize size = [sizingCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize withHorizontalFittingPriority:UILayoutPriorityDefaultHigh verticalFittingPriority:UILayoutPriorityDefaultHigh];

    return size.height + 1.0f; // Add 1.0f for the cell separator height
}

如果我出錯了,請給我一個合適的解決方案。我已經瀏覽了很多東西,但無法正確解決這個問題。 你的幫助會很明顯。謝謝你。

根據你在iPhone6,6 Plus中的單元格高度問題,你需要寫下面的行。

tableView.estimatedRowHeight = 44.0 
tableView.rowHeight = UITableViewAutomaticDimension 

使用自動布局參考的動態單元大小: http//www.appcoda.com/self-sizing-cells/

有沒有理由為同一個細胞提供兩種不同的xib? AutoLayout的重點是單個布局可以足夠靈活,以支持所有屏幕尺寸。

使用自動調整大小時,要記住的關鍵事項是:

  • tableView.estimatedRowHeight = <estimated_value>
  • tableView.rowHeight = UITableViewAutomaticDimension
  • 確保UITableViewCell子類內部有一個非模糊的布局,所有元素都是.contentView子視圖

您的布局看起來非常適合UIStackView 我建議使用包含3個標簽的垂直UIStackView 然后是一個包含前一個UIStackViewUIImageView的水平UIStackView 您需要創建的唯一NSLayoutConstraints將外部UIStackView固定到.contentView所有方面

有關UIStackViews更多信息,請查看我的博客文章:

http://www.raizlabs.com/dev/2016/04/uistackview/

暫無
暫無

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

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