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