我有一个我在界面构建器中设置的视图,我在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];
当我运行app时,不添加子scrollView,也不添加标签?
任何帮助将不胜感激。
答案 0 :(得分:0)
儿童scrollview正在添加好,只是你没有注意到它,因为它有白色背景,而父卷轴视图也有白色背景。此外,您还没有为任何一个scrollView设置contentSize属性,因此它们不会滚动。您的标签偏离当前视图,您无法滚动查看它们。
尝试一下这类事情来分析你的观点:
self.scrollView.contentSize = CGSizeMake(400,9999);
ingredientsScrollView.contentSize = CGSizeMake(400,9999);
self.scrollView.backgroundColor = [UIColor redColor];
ingredientsScrollView.backgroundColor = [UIColor blueColor];
答案 1 :(得分:0)
首先尝试一些事情。
尝试将ingredientsScrollView
直接添加到视图中。如果它没有显示,则可能是方法未被调用的问题。这也将测试您的标签是否已添加到ingrediantsScrollView
。
另外,关于动态大小的UILabel。你为什么不只是使用[baseIngredientsLabel sizeToFit]
?它比你目前试图用框架做的要简单得多。