iOS7 edgesForExtendedLayout
2335 ワード
http://blog.csdn.net/cny901111/article/details/26529949
今日はUISEarchBar、UISEarchDisplayControllerで質問がありましたが、検索バーをクリックすると影の部分の位置がずれてしまいました
次の図を示します.
いつもおかしいと思って、後ろに単独でdemoを作って、同じコードをコピーして正常に表示されていることを発見しました.
次に、コードを1つずつ表示すると、次のように表示されます.
不審な点を発見し、GoogleのiOS 7チュートリアル:iOS 6とiOS 7を同時にサポート、答えを見つけた.
理由:
iOS 7では、アップルが
この問題を修正する迅速な方法は、方法
これで問題は修復された.
参考資料:
http://blog.csdn.net/kmyhy/article/details/20444611
iOSの7:ステータスバーに表示されるUItableView:http://www.sqleye.com/index.php?m=content&c=index&a=show&catid=31&id=25363
今日はUISEarchBar、UISEarchDisplayControllerで質問がありましたが、検索バーをクリックすると影の部分の位置がずれてしまいました
次の図を示します.
いつもおかしいと思って、後ろに単独でdemoを作って、同じコードをコピーして正常に表示されていることを発見しました.
次に、コードを1つずつ表示すると、次のように表示されます.
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
if (OSVersionIsAtLeastiOS7()) {
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
{
self.edgesForExtendedLayout = UIRectEdgeNone;
}
}
}
不審な点を発見し、GoogleのiOS 7チュートリアル:iOS 6とiOS 7を同時にサポート、答えを見つけた.
理由:
iOS 7では、アップルが
[UIViewController setEdgesForExtendedLayout:]
という新しい属性を導入し、デフォルト値はUIRectEdgeAll
です.コンテナがnavigation controllerの場合、デフォルトのレイアウトはnavigation barの上部から始まります.これは、すべてのUI要素が44 pt上にドリフトしている理由です.この問題を修正する迅速な方法は、方法
- (void)viewDidLoad
に次のコードを追加することです.1
self.edgesForExtendedLayout = UIRectEdgeNone;
これで問題は修復された.
参考資料:
http://blog.csdn.net/kmyhy/article/details/20444611
iOSの7:ステータスバーに表示されるUItableView:http://www.sqleye.com/index.php?m=content&c=index&a=show&catid=31&id=25363