我有一個按鈕,我將添加爲表視圖的tableHeaderView的子視圖。按鈕顯示正常,點擊並保持不動 - 大多數情況下,它沒有反應。我試着將它作爲表本身的子視圖來添加;效果大致相同。我認爲這個問題可能與滾動視圖的觸摸攔截有關,但在表上禁用滾動也沒有效果。在UITableView標題中的UIButton忽略最觸動
我做錯了什麼?有人遇到過這種情況麼?
編輯 - 爲了澄清,我說的是主表標題,而不是段標題,在分組樣式表中;認爲基本上是在「聯繫人」屏幕後建模的。
我有一個按鈕,我將添加爲表視圖的tableHeaderView的子視圖。按鈕顯示正常,點擊並保持不動 - 大多數情況下,它沒有反應。我試着將它作爲表本身的子視圖來添加;效果大致相同。我認爲這個問題可能與滾動視圖的觸摸攔截有關,但在表上禁用滾動也沒有效果。在UITableView標題中的UIButton忽略最觸動
我做錯了什麼?有人遇到過這種情況麼?
編輯 - 爲了澄清,我說的是主表標題,而不是段標題,在分組樣式表中;認爲基本上是在「聯繫人」屏幕後建模的。
我有同樣的問題。在我的情況下,我有一個在IB中實例化的容器視圖(它被用作代碼中的表視圖標題),UIImageView佔用了該容器的整個框架。行爲不端按鈕駐留在圖像視圖中。
原來我需要在IB上漿支柱設置如下......
容器視圖:外部錨都在,內部大小調整 - 全部關閉
子圖像視圖:在(內部的所有支柱和外部)
我有幾個不同的表視圖,所有使用標題視圖。有些人會正確迴應觸摸事件,有些是片狀的。這解決了我的問題
+1。這對我有效。我沒有使用IB,所以我不得不用`-setAutoresizingMask:`編程設置struts,並且我發現它只在容器上是必需的。內部圖像控件不需要任何東西。謝謝!永遠不會偶然偶然發現這一點。 – 2010-03-03 13:57:16
經過幾個小時的抨擊我的頭,這爲我工作。謝謝。 – thedeveloper3124 2013-01-19 10:51:02
您應該認爲這不是headerView的預期起訴,並且像這樣的實現可能會導致由於HIG違例而從AppStore中被拒絕。考慮到標題的尺寸很小,最好考慮對視圖進行重構。話雖如此,但沒有簡單的方法可以通過手工檢測觸摸事件並自己確定幾何體,然後根據幾何體執行選擇器 - 簡而言之,就是滾動您自己的按鈕類。
我在HIG中找不到任何內容,禁止使用表格中的按鈕(而不是章節)頁眉/頁腳視圖;聯繫人應用程序將按鈕附加到表格頁腳沒有問題,蘋果公司的「HeaderFooter」樣本做了類似的事情(雖然它表現出同樣的問題)。雷達,也許? – 2008-11-18 00:03:41
更可能的是,我會建議提交一個錯誤。 – wisequark 2008-11-18 17:29:52
我完全不同意Wisequark - 但絕對沒有錯與把一個按鈕,在tableHeaderView,幷包括一個會不冒險您的應用程序從App Store被拒絕。 tableHeaderView被設計成一個包含你選擇的任何元素的任意視圖。
就您的問題而言,可能是您的視圖模糊了您的按鈕,或者,它可能只是一個應該向Apple報告的錯誤。
我有一個類似的問題 - 視圖中的文本框和按鈕設置爲表頭視圖,它不會響應觸摸事件。 setAutoResizing以編程方式爲我工作。
我的控制器擴展的UITableViewController和viewDidLoad中看起來是這樣的:
- (void)viewDidLoad
{
[super viewDidLoad];
MYCustomWidget *headerView = [[[NSBundle mainBundle]
loadNibNamed:@"MYCustomWidgetView" owner:self options:nil]
objectAtIndex:0];
[headerView setAutoresizingMask:UIViewAutoresizingNone];
self.tableView.tableHeaderView = headerView;
}
( 'MYCustomWidget' 延伸的UIView,和 'MYCustomWidgetView' 是一個XIB文件)。
我的情況與Danny Hall's相似(表頭視圖是UIImageView,並且UIButton是UIImageView的子視圖)。就我而言,問題似乎是由按鈕是圖像視圖的子視圖造成的。對我而言,創建一個UIView「contains」視圖,使圖像視圖和按鈕都是「包含」視圖的子視圖。奇怪。
tableHeaderView具有0高度同時它在處理拉伸的UITableView
使用本的UIView子類來設置強恆定的高度,而忽略的UITableView處理
#import <UIKit/UIKit.h>
@interface CustomHeaderCell : UIView
@end
//-----
@import "CustomHeaderCell.h"
@implementation CustomHeaderCell
-(void)setFrame:(CGRect)frame {
frame.size.height = 43; // !!! constant height
[super setFrame:frame];
}
@end
奇怪的是,表格標題視圖顯然不正確調整大小。 我使用自動佈局,所以自動調整掩碼不適合我。檢查我的看法層次結構後:
,發現我的自定義標題視圖有不正確的高度,所以才把少了一半是可點擊(見突出顯示視圖):
的手動更新它的高度固定的問題:
- (void)viewDidLayoutSubviews {
CGRect frame = self.tableView.tableHeaderView.frame;
frame.size.height = 116.0;
self.tableView.tableHeaderView.frame = frame;
}
另外,表格視圖標題高度在方向更改後可能會失效。這個問題也可以通過提供的解決方案來解決。
不要忘記設置頁腳高度:
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
我有同樣的問題UIButtons
行動不UITableView's
頭視圖中工作。首先我想向setAutoresizingMask
閱讀.None
和@Davyd的@Alexey我意識到我沒有設置頭的高度的答案後不工作然後查看,然後我把它想: -
self.tablevwMain.tableHeaderView?.frame = CGRect(x: 0, y: 0, width: width_view, height: your_height)
和所有UIButton's
內UITableView's
標題視圖正常工作。
我遇到了這個確切的問題,但接受的答案不適用於我。 [這個問題的答案](http://stackoverflow.com/questions/19256996/uibutton-not-showing-highlight-on-tap-in-ios7/19299451#19299451)完美地解決了我的問題。 – 2014-01-16 03:46:18