iPhone:在UIScrollView或UITableView上覆盖图像

时间:2011-03-06 17:35:48

标签: iphone objective-c uitableview uiscrollview

请参阅The On Day应用程序的screenshot

在应用程序的底部,最后一个条目被淡化,文本被绘制在旧页面卷曲的自定义图形下面。我很确定这是因为视图是在具有透明度的图像下面绘制的。

我如何在UIScrollView或UITableView上叠加图像,以便我可以获得这种效果,但触摸事件仍由底层视图处理?

1 个答案:

答案 0 :(得分:4)

您需要做的就是在滚动视图或表视图上方放置一个图像视图。在Interface Builder中,只需在您希望它淡出滚动视图的区域上调整图像视图的大小和位置。或者,在代码中:

UIImageView *overlayView = [[UIImageView alloc] initWithImage:someImage];
[overlayView setFrame:someFrame];

// Your scroll view or table view would be a subview of this view
[viewContainingScrollView addSubview:overlayView];
[viewContainingScrollView bringSubviewToFront:overlayView];

[overlayView release];

默认情况下,图像视图将忽略触摸,从而将触摸传递到响应器链中的下一个视图。这使您的滚动视图或表视图可以在图像视图占用的区域中进行触摸,而无需再编写任何代码。

但是,如果你真的想确定,你只需要在图像视图上禁用用户交互:

[overlayView setUserInteractionEnabled:NO];