(xCode 4.3.2,ARC,Storyboard)像往常一样,我有一个Master / Detail项目,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];
我尝试在viewDidLoad
中将userInteractionEnabled设置为NO并检测到
触摸,并设置totalLabelBG.center
属性,但都没有效果。
我还阅读了许多关于禁用网页浏览滚动的主题,但没有发现任何相关内容。
我发现另一个SOF问题的答案可能有效,也可能无效,但用户没有解释答案。 "The trick is to adjust the frame of the "non-scrollable" subview inside -layoutSubviews."
答案 0 :(得分:10)
我通过将子视图添加到UINavigationController
容器中来实现了预期的结果:
[self.navigationController.view addSubview:totalBG];
答案 1 :(得分:0)
就像上面的答案一样。只需将该特定子视图添加到UIScrollView实例外部的任何子视图即可。如果它不想滚动那么将它放在滚动视图中开始是没有意义的。而是使滚动视图仅占用总计子视图顶部的高度