UITableView的自定义标题(如FoodSpotting APP)
有人能解释这个应用程序(FoodSpotting)如何创建他们的自定义节头?它具有半透明的黑色背景,用户图像和一些漂亮的文本(毫无疑问,从服务器加载)。我在这里的两个大问题是:
1.应用程序如何在节标题上获得漂亮的黑色半透明效果? 2.他们如何获得附加到标题的小三角箭头?
我几乎可以根据使用节标题的自定义视图找出其他一切。
UITableView的自定义标题(如FoodSpotting APP)
有人能解释这个应用程序(FoodSpotting)如何创建他们的自定义节头?它具有半透明的黑色背景,用户图像和一些漂亮的文本(毫无疑问,从服务器加载)。我在这里的两个大问题是:
1.应用程序如何在节标题上获得漂亮的黑色半透明效果? 2.他们如何获得附加到标题的小三角箭头?
我几乎可以根据使用节标题的自定义视图找出其他一切。
Section header is a UIView就像任何其他。您可以根据需要使用Interface Builder来创建它,如同复杂或精心设计,如果您愿意,可以使用Interface Builder等。您的表代理的tableView:viewForheaderInSection
负责将其返回,就像其他单元行一样。对于小三角形:是的,这让我们有点儿(我们想要类似的东西在我们的应用中),直到我们发现你可以通过“说谎”它的视图重叠视图的高度:即tableView:heightForHeaderInSection:
返回比实际值略低一些。可能不是“正确”的方式,但对我们来说工作得非常好。就像这样:
所以头实际上是一个完美的长方形,大多是看穿在底部,有一个小三角“偷看”了:
告诉iOS设备标题是80px高,像这样:
- (CGFloat) tableView:(UITableView *) tableView
heightForHeaderInSection:(NSInteger) section {
return 80;
}
它会开始在80px处绘制“食物”行。由于标题在顶部,并且由于大多数标题底部除了箭头外都是透明的,因此您应该获得此效果。
我以不同的方式达到了预期的效果。代替使用tableView:viewForheaderInSection:
(其不为我工作)的,我添加保持该箭头图像作为标题视图的子视图的图像视图,和设置帧是公正标题下方:
// Inside HeaderView.m
UIImageView *arrowImageView = [[UIImageView alloc] initWithImage:self.arrowImage];
arrowImageView.frame = CGRectMake(arrowX, frame.size.height, self.arrowImage.size.width, self.arrowImage.size.height);
[self addSubview:arrowImageView];
[arrowImageView release];
如果仔细观察,Foodspotting.app中有两个文件(following-captionbubble-dark.png和[email protected]),与上述问题中的箭头完全相同。所以我猜他们可能会使用类似的技术。荣誉给Foodspotting团队。
我完全理解你的答案Q1,但你能否充实你对小三角问题的回答?我真的不知道如何重叠的意见会给你一个三角形...谢谢 – Apollo 2012-04-25 00:01:08
部分标题基本上只是一个视图,所以你可以绘制任何你心中的愿望,包括三角形。你可以让自己很难,用Quartz 2D(drawRect :)绘制,或者在Photoshop中制作一个三角形,然后在标题视图中添加一个UIImage,比如标签,更多图像等。 – runmad 2012-04-25 00:03:28
@ derek.lo这可能只是标准的后退按钮,但具有不同的颜色。将它与其他后退按钮进行比较。 – ThomasW 2012-04-25 00:03:56