1

私は UIAlertView を持っており、次を使用してフレームと境界をログに記録します。

  [self.alertView show];
  NSLog(@"frame: %@", NSStringFromCGRect(self.alertView.frame));
  NSLog(@"bounds: %@", NSStringFromCGRect(self.alertView.bounds));

フレームと境界の幅と高さが異なることに気付きました。これはどのように可能ですか?

4

1 に答える 1

2

UIView のフレーム、境界、中心、原点から、いつ何を使用するか?

フレーム- 通常の iPhone アプリケーションで最も頻繁に使用するプロパティです。ほとんどのコントロールは、「含む」コントロールに対して相対的に配置されるため、frame.originコントロールを表示する必要がある場所に直接対応し、コントロールframe.sizeの大きさを決定します。

境界UIView- このプロパティは配置プロパティではありませんが、フレームに対する「相対」の描画可能領域を定義します。デフォルトでは、このプロパティは通常(0, 0, width, height)です。

そうは言っても、boundsサイズがサイズと異なることは驚くことでも珍しいことでもありませんframe。この場合、boundsrect は よりも小さいため、frame単に の一部のみviewが描画されていることを意味します。

また、UIAlertViewビュー階層は見た目よりもはるかに複雑であり、iOS 7 で大きな変更が加えられたことも考慮してください。

これについてさらに言及するために、ドキュメントからのステートメントを次に示します

このUIAlertViewクラスはそのまま使用することを意図しており、サブクラス化はサポートしていません。このクラスのビュー階層は非公開であり、変更してはなりません。

これは良い言い方です:ここにドラゴンがいます!

于 2013-11-02T21:57:32.360 に答える