我遇到了應用程序屏幕尺寸問題。我關閉了自動佈局,以免弄亂屏幕上的元素。iOS故事板,佈局在4.0英寸屏幕尺寸和3.5英寸屏幕尺寸之間變動笨拙
但現在,當我嘗試創建一個簡單的屏幕像這樣一個3.5英寸的屏幕:
但是當我在一個4英寸的屏幕上看到相同的佈局看起來亂七八糟像這樣的間距:
我不明白我在做什麼錯在這裏。如何創建一個在3.5英寸和4.0英寸屏幕上看起來相同的屏幕?
謝謝!
我遇到了應用程序屏幕尺寸問題。我關閉了自動佈局,以免弄亂屏幕上的元素。iOS故事板,佈局在4.0英寸屏幕尺寸和3.5英寸屏幕尺寸之間變動笨拙
但現在,當我嘗試創建一個簡單的屏幕像這樣一個3.5英寸的屏幕:
但是當我在一個4英寸的屏幕上看到相同的佈局看起來亂七八糟像這樣的間距:
我不明白我在做什麼錯在這裏。如何創建一個在3.5英寸和4.0英寸屏幕上看起來相同的屏幕?
謝謝!
Autolayout從Xcode 4.x向前邁進了一大步。其中一件事是蘋果公司傾聽了開發者的意見:現在,默認情況下的自動佈局不會產生任何自動約束,而且還會產生。這意味着:當你拉動所有的控件時(在任何時間點你可以很容易地移除所有的限制,回到那個狀態),你有一個完整的靜態佈局(帶有絕對座標)。建議的工作流程是從此一個接一個地添加約束條件。這導致在任何狀態下完全控制開發者方面。
這就是說。 我的建議是:打開自動佈局。然後將所有控件放置到3.5屏幕上的靜態位置。如果你不想支持縱向/橫向或iPhone/iPad,那麼不要添加任何約束。而你已經完成了,因爲適合在3.5屏幕上的靜態佈局也應該在4.0屏幕上工作。
一旦您想要支持具有相同場景的iPad或橫向模式,請逐個添加約束條件。真的行。自動佈局現在是你的朋友(從Xcode 5開始)。相信我。
非常常見的問題,我遇到了每個應用程序的這個問題。
你有兩個選擇
這是你如何做到這一點
在您的* .h
#import <UIKit/UIKit.h>
@interface v2ViewController : UIViewController
{
NSTimer *timer1;
NSTimer *timer2;
}
@property (nonatomic, retain) NSTimer *timer1;
@property (nonatomic, retain) NSTimer *timer2;
在你的* .M添加此
@synthesize timer1;
@synthesize timer2;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
timer2 = [NSTimer scheduledTimerWithTimeInterval:2.5 target:self selector:@selector(moveOn) userInfo:nil repeats:NO];
}
- (IBAction) moveOn
{
//Now go to the Display Call Page
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
CGSize result = [[UIScreen mainScreen] bounds].size;
if(result.height == 480)
{
// iPhone Classic
[self performSegueWithIdentifier:@"iphone4" sender:nil];
}
if(result.height == 568)
{
// iPhone 5
[self performSegueWithIdentifier:@"iphone5" sender:nil];
}
}
}
如果(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhone) { CGSize結果= [[UIScreen mainScreen]界限。尺寸; if(result。height == 480) { // iPhone Classic [weatherBGImageVw setFrame:CGRectMake(0,0,320,480)]; } if(result.height == 568) // iPhone 5 [weatherBGImageVw setFrame:CGRectMake(0,0,320,568)]; } }
選擇你的UITableView,然後在Size Inspector中激活所有的自動化箭頭和線條,確保你的tableview是頂視圖(在你的UIViewController視圖中)。
我不確定這會解決我的問題。所有的元素轉移,而不僅僅是UITableView – Genadinik
感謝您的觀點,我認爲截圖會讓它更清晰 –
如果你不想處理自動佈局,去你的尺寸檢查和更改自動調整大小,以這樣的:
感謝 - 對於方案二,我會以同樣的確切代碼添加到所有我的控制器?或者對於所有的控制器會有所不同? – Genadinik
你能解釋我如何創建兩個分支?這似乎更容易和更可預測。 – Genadinik
見上面更新的答案 –