带有“Inset”属性的UITableView问题

时间:2009-10-28 00:20:06

标签: iphone uitableview sdk

我的基于导航的应用程序的背景看起来像软木公告板上的纸张。我的RootViewController当然是一个UITableView。我想让TableView结束在纸上,而不是在软木塞上。这里的一些图片更好地解释了它:

alt text http://img528.imageshack.us/img528/3469/bildschirmfoto20091028u.png
这是我滚动到TableView的最后一行时的样子。为此,我在Interface Builder中使用“Content-Bottom”和“Scrollers-Bottom”的“Inset”属性。

alt text http://img24.imageshack.us/img24/3469/bildschirmfoto20091028u.png
这是我滚动到TableView顶部时的样子。

alt text http://img28.imageshack.us/img28/64/35859544.png
这就是我滚动到顶部时希望TableView看起来的样子。

我该怎么做?

非常感谢;-)
亚辛

2 个答案:

答案 0 :(得分:2)

您可以使用较小的size.height参数制作tableView的框架。它会起作用。

哦......好的。我现在附近没有mac所以我不想发布很多代码。我会尽力解释。首先,您应该从UIViewController继承您的rootViewController,而不是UITableViewController。如果您使用IB,则必须将主视图引用到RootViewController的view属性。然后,您可以设置主视图的背景

[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"myImage.png"]]];

或在视图中添加UIImageView并在那里设置背景图像。然后你必须在视图中添加一个UITableView,并将它的框架设置为你想要的任何尺寸。下一步 - 将您的新tableView引用到您班级内的插座。像这样的Smth:

IBOutlet UITableView* myTableView;
在viewDidLoad:方法中

将新tableView的背景设置为clearColor

[myTableView setBackgroundColor:[UIColor clearColor]];

和最后一个。所有你的self.tableView你必须用myTableView替换。

P.S。哦,不要忘记你的新tableView应该有x,y,width属性的框架,与你的self.view的相同,tableView的height属性应该更小一些。

答案 1 :(得分:2)

或者只是在insertSubview:corkBoard atIndex:1期间使用viewDidLoad或其他任何内容。 corkBoard名称应该是软木板所在的视图,index计算其下方的视图数量。因此1下面只有一个视图,UITableView。合理?当然,如果您想要更多的视图,只需更改index计数。

在我看来,这比设置一个框架更好。框架下面会有一个尴尬的空白,而这只是将桌子放在软木塞后面。相当巧妙:))