1

(xCode 4.3.2, ARC, Storyboard) 我有一个主/细节项目,MasterViewController 像往常一样是一个 UITableViewController。它在顶部有一个导航栏,在底部有一个工具栏。我创建了一个自定义子视图,我以编程方式在viewDidLoad.

它加载得很好,并且就像我想要的那样在顶部,但是当用户滚动 tableview 时,子视图也会滚动。我需要子视图“粘”到底部。

在此处输入图像描述

这是我用来添加子视图的代码:

    CGRect totalFrame = CGRectMake(0, 314, 320, 58);
    UIView *totalBG = [[UIView alloc] initWithFrame:totalFrame];
    totalBG.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"totalBG.png"]];
    [self.view addSubview:totalBG];

    CGRect totalLabelFrame = CGRectMake(12, 12, 80, 40);
    totalLabelBG = [[UILabel alloc] initWithFrame:totalLabelFrame];
    totalLabelBG.backgroundColor = [UIColor clearColor];
    totalLabelBG.text = @"Total:";
    [totalLabelBG setFont:[UIFont boldSystemFontOfSize:22]];
    totalLabelBG.userInteractionEnabled = NO;
    totalLabelBG.textColor = [UIColor whiteColor];
    totalLabelBG.shadowColor = [UIColor blackColor];
    totalLabelBG.shadowOffset = CGSizeMake(0, 1);
    [totalBG addSubview:totalLabelBG];

我尝试将 userInteractionEnabled 设置为 NOviewDidLoad并检测触摸,并设置totalLabelBG.center属性,但均未成功。

我还阅读了很多关于禁用 web 视图滚动的线程,但没有发现任何相关内容。

我发现另一个 SOF 问题的答案可能有效,也可能无效,但用户没有解释答案。“诀窍是调整 -layoutSubviews 内的‘不可滚动’子视图的框架。”

4

2 回答 2

10

我通过将子视图添加到UINavigationController容器中来达到预期的结果,如下所示:

[self.navigationController.view addSubview:totalBG];
于 2012-04-09T12:59:02.830 回答
0

就像上面的答案一样。只需将该特定子视图添加到 UIScrollView 实例外部的任何子视图即可。如果它不应该滚动,那么将它放在滚动视图中是没有意义的。而是使滚动视图仅占据总计子视图顶部的高度

于 2013-11-25T20:23:09.693 回答