0

フレームと境界の違いに関連するさまざまな質問(Cocoa:フレームと境界の違いは何ですか?UIViewフレーム、境界と中心)を読んでいますが、それでも、次のような場合の理由がわかりません。

UILabel *newMark = [[UILabel alloc] initWithFrame:self.frame];
newMark.text = @"|A3";
[self addSubview:newMark];

またはこれ:

UILabel *newMark = [[UILabel alloc] init];
newMark.text = @"|A3";
newMark.frame = self.frame;
[self addSubview:newMark];

ラベルは表示されませんが、次のように境界を使用して同等の処理を行う場合は次のようになります。

UILabel *newMark = [[UILabel alloc] initWithFrame:self.bounds];
newMark.text = @"|A3";
[self addSubview:newMark];

またはこれ

UILabel *newMark = [[UILabel alloc] init];
newMark.text = @"|A3";
newMark.frame = self.bounds;
[self addSubview:newMark];

表示されます。境界の使用に問題はありませんが、次のスクリーンショットに示されているように、ラベルを適切な場所に配置していないと思います。

ラベル

ここで、ご覧のとおり、「|」、「A」、「3」は、iPadの画面よりも下部に表示されるためカットされています。何か案は?

4

1 に答える 1

1

frameそのスーパービューに相対的です。したがって、フレームの原点がスーパービュー内の (100,200) にあり、サブビューのフレームをフレームと同じになるように設定すると、サブビューは内部の (100,200) になります。

通常(変換が含まれていない場合)、サブビューをスーパービューと同じサイズにする場合は、次のように言います。

subview.frame = superview.bounds;
于 2012-10-02T16:21:18.303 に答える