0

我试图实现以下效果 - UIImageView 放置在底部 - UITableView 放置在 UIImageView 顶部并覆盖 UIImageView 的一部分 - 当下拉 UITableView 时,UIImageView 的其余部分将相应地出现。

我在 UIViewController 中以以下方式编码

[self.view addSubview:[self myImageView]]; // CGRectMake(0.0f, 0.0f, 320.0f, 240.0f)
[self.view addSubview:[self myTableView]]; // CGRectMake(0.0f, 140.0f, 320.0f, 480.0f)

但在视觉上,当表格视图被拉下时,它就像表格视图位于图像视图下方并被拉出图像视图,而不是我想要在上面实现的。

如何解决?

4

2 回答 2

0

我相信您可以将表格视图的 .backgroundImage 或 .backgroundView 属性设置为[UIImage imageNamed@"my image"];

于 2012-11-03T05:11:56.080 回答
0

UITableView 不会在子视图层次结构中显示其背后的内容。它有一个背景,从技术上讲,您并没有在视图中上下拖动一长串列表,而是简单地拖动始终相同高度的设置框架中显示的内容。向上或向下拖动太多时,会显示表格视图的背景*。

您的问题有两种解决方案..

您可以将图像添加为表格视图的背景(使用上面的对象名称):

// nil by default (but has a color if nil)
[[self myTableView] setBackgroundView:[self myImageView]];

或者您可以使表格视图的背景颜色透明,在背景中显示任何子视图:

[[self myTableView] setBackgroundColor:[UIColor clearColor]];

在您的情况下,由于 myImageView 框架没有填满整个屏幕框架,后一种解决方案可能是最好的解决方案,但只要意识到没有图像的区域将是任何最后的背景颜色(UIViewController 的背景或 UIWindow,具体取决于您的设置)。

希望这可以帮助!

*除非设置页眉或页脚视图,但这是 UIScrollView 的一部分,UITableView 继承自它,在这种情况下可能不是您要查找的内容,因为这些视图会随着 tableview 内容滚动,而不是静态显示在后面桌子。

于 2012-04-24T23:59:03.390 回答