爲了簡單起見,我只是使用uitableviewcell而不是uiscrollview做了登錄屏幕,但事實證明這是一場災難。UItableviewcell亂七八糟的顯示,他們只是無法正確使用iphone6 +獲得屏幕寬度。 (objc)
我將單元格顏色變爲綠色,以便您清楚地看到它。下面是它的外觀在iPhone6 +:
下面是如何看起來在iPhone 5:
所以這裏的問題是的UILabel,同時也是UITextField沒有得到IP6 +屏幕尺寸。我用這個代碼來設置它們應得到正確的屏幕尺寸
screenWidth = [[UIScreen mainScreen] bounds].size.width;
UITableViewCell *cell = [[UITableViewCell alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 44)];
UITextField *field = [[UITextField alloc] initWithFrame:cell.contentView.layer.bounds];
OR
UILabel *uiLabel = [[UILabel alloc] initWithFrame:cell.contentView.frame];
我的主要問題是,如果UIScreen不起作用,我們如何得到適當的寬度爲iPhone 6+?
你有一個解決方案,所以我只想指出,Apple使用Autolayout/Constraints來處理這種情況。而不是創建一個固定大小的對象,而是添加約束條件,對象將重新調整大小以適應屏幕大小。至於你的問題,你沒有記錄各種幀的輸出或告訴我們你的代碼在哪裏運行,所以我不能評論你是否正確編寫了你的代碼。 –
嗨@RoboticCat謝謝你。我知道AutoLayout,但我只是嘗試沒有AL的代碼。無論AL與否,代碼仍然可以工作,而且確實如此。 –