如何让UIView将UIScrollView叠加为页脚

时间:2011-09-28 17:26:50

标签: objective-c uiview uiscrollview overlay footer

我有UIScrollView的图片需要可扩展。我想要一个带有黑色(不透明)背景和白色文字的“页脚”。我希望将它固定为页脚。它将是不透明的,因此您可以看到它背后的图像。

我为滚动视图和页脚创建了一个包含UIView的内容。我可以让scrollview小于app框架,并在底部填充额外空间的页脚,但显然我看不到页脚后面的图像。

我还尝试将UIScrollViewUIView(页脚)放在容器中并相应地定位它们,但在这种情况下我甚至看不到页脚。有什么想法吗?

代码我到目前为止(在viewDidLoad视图控制器中执行):

CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
UIView* view = [[UIView alloc] initWithFrame:appFrame];
view.backgroundColor = [UIColor blackColor];
CGRect scrollViewFrame = CGRectMake(0.0, 0.0, view.frame.size.width, view.frame.size.height - 100);

UIScrollView* scrollView = [[UIScrollView alloc] initWithFrame:scrollViewFrame];
[scrollView setCanCancelContentTouches:NO];
scrollView.clipsToBounds = YES;
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;

[scrollView addSubview:imageView];
[scrollView setContentSize:CGSizeMake(imageView.frame.size.width, imageView.frame.size.height)];

scrollView.minimumZoomScale = 0.7;
scrollView.maximumZoomScale = 5;
scrollView.delegate = self;
[scrollView setScrollEnabled:YES];

UIView* textView = [[UIView alloc] initWithFrame:CGRectMake(0.0, scrollViewFrame.size.height, appFrame.size.width, 100)];
// Red for testing purposes
textView.backgroundColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.5];

[view addSubview:scrollView];
[view addSubview:textView];

self.view = view;

2 个答案:

答案 0 :(得分:1)

我有很多UIScrollViews,底部或顶部有一个小的非滚动视图。在大多数情况下,我没有任何重叠,他们只是坐在一起。我在InterfaceBuilder中创建它们,并将它们分配给IBOutlets。

答案 1 :(得分:1)

我假设使用“image”表示滚动视图中有UIImage,并且您希望通过半透明的页脚视图查看它。

在这种情况下,您不应将视图放在彼此之下,而是将页脚视图放在滚动视图的顶部。您可以通过致电bringSubviewToFront或使用[containerView insertSubview:footer atIndex:0];代替addSubview:来确保自己位于首位。

另一个警告可能是您调用视图view。关于哪个视图可能存在一些不可预测的行为,因此最好将其称为其他内容,然后将其分配给self.view