2017-09-05 11 views
0

私のアプリケーションには、ビューを90度回転させてフレームを変更して、画面を横に塗りつぶすボタンがあります。iOS 11でフレームサイズが変更されない

コードは、次のとおりです。

CGAffineTransform transform = CGAffineTransformRotate(self.tabsView.transform, M_PI_2); 

self.tabsView.transform = transform; 


CGRect newFrame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height); 

self.tabsView.frame = newFrame; 

それは、iOSの10の魅力と下のように動作します: Lanscape iOS 10

しかし、iOSの11シミュレータで上のXcode 9ベータ6、それを実行しています私はこの結果を得ます: Landscape iOS 11

これはバグですか?このバージョンでは私は知りませんか? 私は自動レイアウトを使用します。

+0

変換後、ビューの高さが幅になり、幅が高さになると思いませんか? – Suryakant

+0

@Suryakant私はあまりにも最初に思ったが、それをすることは、iOS 10で間違った結果を引き起こし、iOS 11には何の影響も及ぼしません。 コード自体は正しいですが、iOS 11では実行されていないようです理由を知っている。 – Kian

答えて

0

解決策が見つかりました。このコード行を追加する必要がありました。

self.tabsView.translatesAutoresizingMaskIntoConstraints = YES; 

ビュー自動サイズ変更マスクを自動レイアウト制約に変換します。 これで、両方のiOSバージョンで同じ結果が得られました。

関連する問題