0

最終的にはユニバーサル アプリのヘルプ吹き出しになる UIView をプログラムで作成していますが、UIView でデバイスの回転をサポートするのに苦労しています。私のビューが作成されたとき、それは私が望むように見栄えがしますが、デバイスを回転させると、UIView ポップオーバーが拡大して画面全体に表示されますが、これは私が望むものではありません。

それが役立つ場合は、他のストーリーボード コントロールの自動レイアウトで iOS 6 を使用しています。

iOS がデバイスの回転時にポップオーバーのサイズをフルスクリーンに変更する理由を誰か説明してもらえますか?

それにいくつかの制約を追加することも検討しましたが、それはポップオーバー ビュー自体ではなく、サブ レイヤーのためのものであると考えました。

私が使用しているコードは次のとおりです。

customView = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 200, 200)];

customView.layer.cornerRadius = 15;
customView.layer.borderWidth = 1.5f;
customView.backgroundColor = [UIColor blackColor];
[customView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];

[self.tableView.superview addSubview:customView];
4

2 に答える 2

2
[customView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];

フレキシブル幅/高さの自動サイズ変更マスクは、親ビューが変更されたときにUIViewのサイズを変更します。ビューを回転すると、スーパービューのフレームが変更され、ビューの幅と高さが比例して変更されます。同じサイズが必要な場合は、その行を削除します。ビューの周囲に同じパディングが必要な場合は、

 [customView setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleBottomMargin];
于 2013-02-11T22:44:00.000 に答える
1

iOS6 の時点で、Apple は自動レイアウトの使用を奨励しています。これは、コードがより記述的で、管理/デバッグが容易であるためです。

例えば。自動レイアウトで同じことを行うには

  UIView *customView = [[UIView alloc] init];
  customView.backgroundColor = [UIColor blackColor];
  customView.layer.cornerRadius = 15;
  customView.layer.borderWidth = 1.5f;
  [customView setTranslatesAutoresizingMaskIntoConstraints:NO];
  [self.tableView.superview addSubview:customView];

  NSArray *arr;

  //horizontal constraints
  arr = [NSLayoutConstraint constraintsWithVisualFormat:@"|-20-[customView(200)]"
                                                         options:0
                                                         metrics:nil
                                                           views:NSDictionaryOfVariableBindings(customView)];
  [self.tableView.superview addConstraints:arr];

  //vertical constraints
  arr = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[customView(200)]"
                                                options:0
                                                metrics:nil
                                                  views:NSDictionaryOfVariableBindings(customView)];
  [self.tableView.superview addConstraints:arr];
于 2013-02-11T23:06:09.163 に答える