【问题标题】:Adding scrollView to another scrollView not working将滚动视图添加到另一个滚动视图不起作用
【发布时间】:2013-02-26 18:13:48
【问题描述】:

我有一个在界面生成器中设置的视图,我在 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];

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

任何帮助将不胜感激。

【问题讨论】:

  • 您是否验证过所有变量都不为零?
  • 是的,一切正常。
  • scrollView 的框架是什么?是否将 scrollView 添加到视图中?
  • 使用IB添加的,边框是整屏减去状态栏。

标签: objective-c uiscrollview


【解决方案1】:

子滚动视图正在添加,只是您没有注意到它,因为它有一个白色背景,而父滚动视图也有一个白色背景。此外,您还没有为任何一个滚动视图设置 contentSize 属性,因此它们不会滚动。您的标签偏离当前视图,您无法滚动查看它们。

尝试一些这样的事情来分析你的观点:

self.scrollView.contentSize = CGSizeMake(400,9999);
ingredientsScrollView.contentSize = CGSizeMake(400,9999);
self.scrollView.backgroundColor = [UIColor redColor];
ingredientsScrollView.backgroundColor = [UIColor blueColor];

【讨论】:

  • 我设置了配料ScrollView的contenSize问题解决了。
【解决方案2】:

先尝试几件事。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 2015-05-15
    • 2017-07-09
    相关资源
    最近更新 更多