0

我有一个在界面生成器中设置的视图,我在 IB 中添加了一个滚动视图,现在我正在尝试添加另一个滚动视图,它只是父滚动视图的一部分。在子滚动视图上,我正在尝试使用一个动态大小的标签,该标签将驻留在另一个固定标签下。

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];

当我运行应用程序时,没有添加子滚动视图,也没有添加标签?

任何帮助将不胜感激。

4

2 回答 2

0

子滚动视图正在添加,只是您没有注意到它,因为它具有白色背景,而父滚动视图也具有白色背景。此外,您还没有为任何一个滚动视图设置 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 回答
0

先尝试几件事。

尝试将您的ingredientsScrollView直接添加到视图中。如果它没有出现,您可能遇到了未调用该方法的问题。这还将测试您的标签是否被添加到ingrediantsScrollView.

此外,关于您的动态大小的 UILabel。你为什么不只是使用[baseIngredientsLabel sizeToFit]?它比您当前尝试对框架执行的操作要简单得多。

于 2013-02-26T18:48:48.203 回答