我在故事板中有以下視圖。肖像版本正常工作沒有任何問題。但我想在景觀視圖中縮小Profile Image
。然後底部項目獲取屏幕上的空間。做我需要做的編碼除自動版式Xcode Autolayout - 使橫向視圖中的子視圖小
人像模式
風景模式
故事板視圖
我在故事板中有以下視圖。肖像版本正常工作沒有任何問題。但我想在景觀視圖中縮小Profile Image
。然後底部項目獲取屏幕上的空間。做我需要做的編碼除自動版式Xcode Autolayout - 使橫向視圖中的子視圖小
人像模式
風景模式
故事板視圖
您可以使用If-else條件爲兩個方向手動設置框架。
例如:
if (orientation == UIInterfaceOrientationMaskPortrait)
{
self.view.frame = CGRectMake(0, 0, 1000, 800);
self.tableView1.frame = CGRectMake(1, 0, 764,510);
}
else if (orientation == UIInterfaceOrientationMaskLandscapeLeft)
{
self.view.frame = CGRectMake(0, 0, 1300, 370);
self.tableView1.frame = CGRectMake(0, 0, 1300, 370);
self.view.backgroundColor = [UIColor blackColor];
}
你不應該覺得取向 「風景」 的了。最好將其視爲垂直:緊湊型,高度:緊湊型,這對於除6+以外的所有iPhone都是基本上景觀的。
選擇你想要的大小類。如果你不太瞭解它們,Xcode會告訴你每一個代碼是什麼。
控制從UIImageView
拖動到主要UIView
並選擇「等寬」並命令點擊「等高」。
點擊您的UIImageView
。在「實用程序」檢測器欄區域(右側面板)中,單擊「標尺」圖標,您將看到UIImageView
的約束條件。
調整「等高」和「等寬」限制爲視圖的百分比。您可能需要根據自己的喜好調整它。
你不需要任何超過Autolayout
來做到這一點。不要直接在viewWillTransitionToSize:coordinator:
中設置框架 - 通過這樣做基本上可以對框架尺寸進行硬編碼,並且您必須爲每個尺寸類別對UITraitCollection
進行大量檢查,以便爲每個尺寸類別設置框架。
讓約束爲IBOutlet
屬性,並在縱向或橫向模式下調整它們。 您可以在Xcode的故事板中設置IBOutlet
屬性。
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *imageHeightConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *imageWidthConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *buttonBottomConstraint;
// Other constraints ....
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
// Portrait mode
self.imageHeightConstraint.constant = ooo;
// Adjust other constraints
// ....
} else {
// Landscape mode
self.imageHeightConstraint.constant = xxx;
// Adjust other constraints
// ....
}
}
你不需要做任何碼輸出。它非常直接。你有沒有對配置文件圖像進行高度限制?你在使用大小班嗎? – Irfan
@Ifan只給出了頂部和底部約束。如果我給左右圖像消失 –
它正在消失,因爲當你更新框架時,它將寬度設置爲0.或者你的高度限制是錯誤的,並且它將它壓扁以使高度爲0. – noobsmcgoobs