Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UITableView自定义标题(如FoodSpotting应用程序)_Iphone_Objective C_Ios_Uitableview - Fatal编程技术网

Iphone UITableView自定义标题(如FoodSpotting应用程序)

Iphone UITableView自定义标题(如FoodSpotting应用程序),iphone,objective-c,ios,uitableview,Iphone,Objective C,Ios,Uitableview,有人能解释一下这个应用程序(FoodSpotting)是如何创建他们的自定义节标题的吗?它有一个半透明的黑色背景,用户的图像和一些漂亮的文本(无疑是从服务器加载的)。我的两大问题是: 1。应用程序如何在版面标题上获得漂亮的黑色半透明效果? 2。他们如何将小三角形箭头连接到标题? 基于对节标题使用自定义视图,我几乎可以计算出所有其他内容。与其他任何内容一样。您可以使用Interface Builder(如果需要)创建美观、复杂或简单的表格,等等。您的表格委托的tableView:viewForhe

有人能解释一下这个应用程序(FoodSpotting)是如何创建他们的自定义节标题的吗?它有一个半透明的黑色背景,用户的图像和一些漂亮的文本(无疑是从服务器加载的)。我的两大问题是:

1。应用程序如何在版面标题上获得漂亮的黑色半透明效果? 2。他们如何将小三角形箭头连接到标题?

基于对节标题使用自定义视图,我几乎可以计算出所有其他内容。

与其他任何内容一样。您可以使用Interface Builder(如果需要)创建美观、复杂或简单的表格,等等。您的表格委托的
tableView:viewForheaderInSection
负责返回该表格,就像返回其他单元格行一样

至于小三角形:是的,这让我们有点困惑(我们希望我们的应用程序中有类似的东西),直到我们发现可以通过“谎报”行的高度来重叠视图:ie
tableView:heightForHeaderInSection:
返回的值比实际值稍小。可能不是“正确”的方式,但对我们来说非常有效。像这样:

因此,标题实际上是一个完美的矩形,主要是底部的透明,带有一个小三角形“窥视”:

告诉iOS标头为80px高,如下所示:

- (CGFloat) tableView:(UITableView *) tableView 
  heightForHeaderInSection:(NSInteger) section {
    return 80;
  }

它将以80像素开始绘制“食物”行。由于页眉位于顶部,并且除箭头外,页眉底部的大部分区域都是透明的,因此您应该可以获得这种效果。

我以不同的方式实现了所需的结果。我没有使用
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];

如果仔细观察,有两个文件(following-captionbubble-dark.png和following-captionbubble)-dark@2x.png)在Foodspotting.app中,与问题中的箭头完全相同。所以我猜他们可能使用了类似的技术。感谢Foodspotting团队。

我完全理解你的答案Q1,但你能充实一下你对小三角问题的答案吗?我真的不明白重叠视图是如何得到一个三角形的…感谢小节标题基本上只是一个视图,所以你可以随心所欲地画任何东西,包括三角形。您可以让自己变得困难,使用Quartz 2D(drawRect:)绘制,或者在Photoshop中制作一个三角形,在标题视图中添加一个UIImage,以及其他所有内容,例如标签、更多图像等。@derek.lo这可能只是标准的后退按钮,但颜色不同。“把它和其他背面按钮比较一下。”托马斯:不,他在问那个家伙头像下面的三角形。同样,在Photoshop中需要2分钟才能完成的操作;)@runmad和ckhan,我仍然对你的两个答案有点困惑。所以我知道我如何运行photoshop并创建一个小三角形,但是我应该把这个三角形放在哪里/我如何告诉IOS使headerView的底部5px完全透明,除了三角形,在你的解决方案中runmad将是一个UIImage。谢谢你的回答,我只需要再澄清一下!谢谢