请参阅The On Day应用程序的screenshot。
在应用程序的底部,最后一个条目被淡化,文本被绘制在旧页面卷曲的自定义图形下面。我很确定这是因为视图是在具有透明度的图像下面绘制的。
我如何在UIScrollView或UITableView上叠加图像,以便我可以获得这种效果,但触摸事件仍由底层视图处理?
答案 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];