簡體   English   中英

自定義UITableViewCell寬度問題

[英]Custom UITableViewCell width issue

我有一個自定義的UITableViewCell和.xib。 在xib中,我將像元寬度設置為320。

我想相對於單元格寬度在單元格內放置一個UIlabel。 但是,在運行時的代碼中,單元的Bounds.width始終為320(如在xib中設置的),而不是我需要正確放置UILabel的屏幕/ UITableView的實際寬度。

顯然,至少在運行時,iphone 5、6和6+的寬度應該不同,但是在所有設備上,寬度始終設置為320。 我想念什么?

謝謝!

編輯

這是一小段代碼。

var newFrame = _lblDetail.Frame;
newFrame.X = Bounds.Width - 55; //get current width of cell, and subtract 55 and set that as the X value of the frame for the label
_lblDetail.Frame = newFrame; //set new frame on label

單元格的tableview始終具有320的寬度,表明該表未響應屏幕尺寸。 然后,您需要檢查是否正確設置了表格視圖的自動布局約束(如果您使用的是自動布局),或者對於每個屏幕尺寸,表格視圖的框架設置都不同。

Bounds.Width

iPhone 4S和5將分別為320和iPhone 6+分別為375和414。

事實上,您看到的是320的寬度,這讓我相信您的應用尚不支持更高密度的屏幕,因此會將320放大。 您可以看出狀態欄(頂部的時間)會稍大。

為每個設備大小設置各自的啟動映像,所有操作將以每個設備的原始分辨率運行。

您需要以以下分辨率設置啟動映像:

Default-667h@2x.png for iPhone 6; dimensions 750x1334
Default-736h@3x.png for iPhone 6 Plus; dimensions 1242x2208

嘗試在layoutSubviews方法中獲取寬度。

override func layoutSubviews() {
    super.layoutSubviews()

    NSLog("self.frame.size is %@", NSStringFromCGSize(self.frame.size))
}

以下是我的輸出

2015-07-21 10:10:3​​4.942 MyApp [74669:1208599] self.frame.size為{768,310}

暫無
暫無

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

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