0

インターフェイス ビルダーで設定したビューがあり、IB に scrollView を追加しましたが、親 scrollView の一部にすぎない別の scrollView を追加しようとしています。子スクロール ビューの内側で、別の固定ラベルの下にある動的サイズのラベルを使用しようとしています。

UIScrollView *ingredientsScrollView = [[UIScrollView alloc]
                                       initWithFrame:CGRectMake(20, 287, 280, 300)];
ingredientsScrollView.scrollEnabled = YES;
UILabel *ingredientsLabel = [[UILabel alloc] initWithFrame:CGRectMake(230, 310, 70, 21)];
ingredientsLabel.text = @"מצרכים";

UILabel *baseLabel = [[UILabel alloc] initWithFrame:CGRectMake(230, 325, 70, 21)];
baseLabel.text = @"חומרים לבסיס";

UILabel *baseIngredientsLabel = [[UILabel alloc] init];

    CGSize maximumLabelSize = CGSizeMake(296,9999);

CGSize expectedLabelSize = [baseIngredientsString sizeWithFont:baseIngredientsLabel.font
                                  constrainedToSize:maximumLabelSize
                                      lineBreakMode:baseIngredientsLabel.lineBreakMode];

//adjust the label the new height.
CGRect newFrame = baseIngredientsLabel.frame;
newFrame.size.height = expectedLabelSize.height;
baseIngredientsLabel.frame = newFrame;

//i added text to the string in some way
baseIngredientsLabel.text = baseIngredientsString;

[ingredientsScrollView addSubview:ingredientsLabel];
[ingredientsScrollView addSubview:baseIngredientsLabel];

[scrollView addSubview:ingredientsScrollView];

アプリを実行すると、子 scrollView もラベルも追加されませんか?

どんな助けでも大歓迎です。

4

2 に答える 2

0

最初にいくつかのことを試してください。

ingredientsScrollViewビューに直接追加してみてください。表示されない場合は、メソッドが呼び出されていないことに問題がある可能性があります。また、ラベルが に追加されているかどうかもテストしますingrediantsScrollView

また、動的にサイズ変更された UILabel に関しても。なぜあなただ​​けを使用していないの[baseIngredientsLabel sizeToFit]ですか?フレームで現在実行しようとしているものよりもはるかに簡単です。

于 2013-02-26T18:48:48.203 に答える
0

子スクロールビューは正常に追加されています。背景が白く、親スクロールビューも背景が白であるため、気付かないだけです。また、どちらの scrollViews にも contentSize プロパティを設定していないため、スクロールしません。ラベルは現在のビューから外れており、スクロールして表示することはできません。

ビューを分析するために、この種のことを少し試してください。

self.scrollView.contentSize = CGSizeMake(400,9999);
ingredientsScrollView.contentSize = CGSizeMake(400,9999);
self.scrollView.backgroundColor = [UIColor redColor];
ingredientsScrollView.backgroundColor = [UIColor blueColor];
于 2013-02-26T18:45:55.537 に答える