2016-04-13 14 views
0

マップビューは画面いっぱいに表示されますが、使用可能な領域は上半分(下端のレイアウトマージン)に制限されているため、マップの下端が視覚効果ビュー画面の半分の高さで画面の下部に固定されています。通常、ツールバーの上と下に広がるのと同じ方法です。 自動レイアウトを使用してレイアウトマージンを設定する

は、次のように私はコードでlayoutMarginsプロパティを設定することができ、これを達成するために:私は原因に余白が自動的に更新されるように、代わりに自動レイアウト制約でこれを行うしたいと思いますしかし

self.mapView.layoutMargins = UIEdgeInsetsMake(0, 0, self.view.frame.size.height/2, 0); 

たとえば、画面の回転のために表示サイズが変化します。これが可能なら誰でも知っていますか?もしそうなら、特定のレイアウト制約をIBまたはコードのどちらに追加するのですか?私はそれがNSLayoutAttributeBottomMarginの使用を必要とするかもしれないと信じています。ありがとう。上のスクリーンショットで

Screenshot

、あなたは地域が英国に設定し、マップビューの使用可能な部分を埋めて、あなたはまた、左下の法的ラベルを見ることができますされています見ることができます正しいです場所。これらは、マップビューでlayoutMarginsプロパティを使用するメリットの一部です。インターフェイスビルダーで

Storyboard constraints

答えて

0

、単にそして、あなたはあなたの視覚効果の側面と底面を固定可能性が0のマージンを使用して、スーパーの端にあなたのマップビューの端をピン側面に表示し、下にあるマージン0を使用してスーパービューの下端を作成します。次に、ビジュアルエフェクトビューのトップコンストレインを作成します(それを変更します)。

次にVFXビューのトップコンストレイン"Second Item"を "Center Y"に変更することができます。つまり、上端がスーパービュー垂直センターの中心に固定されていることを意味します。

これにより、視覚効果ビューは常に画面の下半分に固定された状態に保たれます。

+0

返信ありがとうございますが、私の問題に答えることはありません。エフェクトビューを画面の下半分に固定するのに問題はありません。私は地図の下のレイアウトマージンを視覚効果ビューの上端またはその高さに固定しようとしています。 – malhal

+0

私の謝罪は、質問をあまりにも速くスキミングしました。サイズインスペクタの下でIBでレイアウトマージンを明示的に設定できますが、もっと動的なものを探しているようです。私はこのような状況でサイズクラスを使用することについて考えます。必要なだけ多くの回転で高さを明示的に設定し、サイズクラスが回転とサイズ変更を処理できるようにします。 – BendE

+0

私はその設定を試しましたが、効果はありません。そして、私は余裕が必要です。 – malhal

0

自分の質問に答える! layoutMarginsに対してIBで制約を設定することはできないようですが、layoutMarginsのエントリを追加してCGRectのタイプを使用して、ユーザー定義のランタイムアトリビュートを設定し、ボトムマージンをwidthパラメータとして設定することは可能です。我々は、ダイナミックなレイアウトを必要とするので、しかし、解決策は、コードに次のように置くことです。

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self viewWillTransitionToSize:self.view.bounds.size withTransitionCoordinator:nil]; 
} 

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{ 
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator]; 
    self.mapView.layoutMargins = UIEdgeInsetsMake(0, 0, size.height/2.0, 0); 
} 

スーパーが、Apple do it in this sampleも呼び出し、null以外のparamを取るゼロとメソッドを呼び出すことが悪いようです。

これは必ずしも機能しない状況があります。風景から肖像画への切り替えが遅すぎると、やり直すと余白が更新されません。しかし、UIKitはこのようなバグでいっぱいですので、それを行かせなければなりません。

関連する問題