這裏是我的故事板iOS 8的今天,控件對齊問題
我使用自動版式,和不使用大小類。
當我跑了它在iPhone 5S,它工作正常。(縱向和橫向)
但是,當我跑了它在iPhone 6加(縱向),這不是正確對齊。
在iPhone 6 plus(橫向)上,情況更糟。
我知道我可以使用-widgetMarginInsetsForProposedMarginInsets:
設置邊距,但在這種情況下,我需要爲每個設備定製邊距。這將是可怕的:(
那麼,有沒有對齊子視圖標題少痛苦的方式
這裏是我的故事板iOS 8的今天,控件對齊問題
我使用自動版式,和不使用大小類。
當我跑了它在iPhone 5S,它工作正常。(縱向和橫向)
但是,當我跑了它在iPhone 6加(縱向),這不是正確對齊。
在iPhone 6 plus(橫向)上,情況更糟。
我知道我可以使用-widgetMarginInsetsForProposedMarginInsets:
設置邊距,但在這種情況下,我需要爲每個設備定製邊距。這將是可怕的:(
那麼,有沒有對齊子視圖標題少痛苦的方式
看起來你必須手動設置它。您可以通過創建約束,然後指定一個IBOutlet並根據設備/方向設置常量來實現此目的。
供參考,在這裏是我找到你所需要的邊距:
你可以找到你的擴展視圖的大小,這是414磅的肖像iPhone需要哪一個6
iPad風景和肖像怎麼樣? – Erich 2014-10-16 19:41:26
您需要自定義窗口小部件邊距:?
- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets;
所以我必須單獨定製8個值?(iphone 5,iphone 6,iphone 6+,ipad,兩個方向) – Keoros 2014-09-25 02:35:33
將邊緣插圖設置爲零應解決問題:
- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets
{
return UIEdgeInsetsZero;
}
在iOS 9上,它完全刪除了插頁,看起來更糟糕。 – 2015-07-30 08:21:51
謝謝〜它有很多幫助。在iOS 9.1上工作正常 – 2015-12-01 05:32:26
修復了某些設備。需要埃裏卡斯UIDevice-Extension
。
- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets
{
defaultMarginInsets.bottom = 0;
if ([UIDevice.currentDevice.modelIdentifier containsString:@"iPhone7,1"] && self.traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassCompact) {
defaultMarginInsets.left += 5;
} else if ([UIDevice.currentDevice.modelIdentifier containsString:@"iPhone7,1"] && self.traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassRegular) {
defaultMarginInsets.left += 34;
} else {
defaultMarginInsets.left += 1;
}
return defaultMarginInsets;
}
您是否使用自動佈局?如果是這樣,只需設置容器邊距約束。 – 2014-09-24 20:28:36
但是什麼是保證金,它在不同的設備/方向上有所不同 – Keoros 2014-09-25 02:38:03
我認爲系統爲每個設備設置了正確的邊距 – 2014-09-25 07:31:33