여러 섹션이있는 UITableView가 있습니다. 각 섹션에는 섹션 헤더 (사용자 정의보기)가있어 섹션 헤더를 선택하면 쉽게 찾을 수 있습니다. (didSelectRowAtIndexPath와 마찬가지로 헤더에 대해?)uitableviewcontroller 섹션의 헤더 선택
미리 감사드립니다.
여러 섹션이있는 UITableView가 있습니다. 각 섹션에는 섹션 헤더 (사용자 정의보기)가있어 섹션 헤더를 선택하면 쉽게 찾을 수 있습니다. (didSelectRowAtIndexPath와 마찬가지로 헤더에 대해?)uitableviewcontroller 섹션의 헤더 선택
미리 감사드립니다.
아니요 UITableViewDelegate
으로 수행 할 방법이 없습니다.
섹션 헤더보기의 크기만큼 단추를 추가하고보기에 추가하면됩니다. 버튼의 태그를 섹션 색인으로 설정하십시오. UIControlEventTouchUpInside
의 대상으로 UIViewController
을 추가하기 만하면됩니다.
버튼의 태그를 보면 클릭 한 부분을 볼 수 있습니다.
이것은 @rckoenes 응답과 근본적으로 다르지 않지만 보이지 않는 버튼을 사용하는 대신보기에서 이벤트를 처리하는보다 정통적인 방법을 제공합니다. 다음
UITapGestureRecognizer *singleTapRecogniser = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)] autorelease];
[singleTapRecogniser setDelegate:self];
singleTapRecogniser.numberOfTouchesRequired = 1;
singleTapRecogniser.numberOfTapsRequired = 1;
[yourHeaderView addGestureRecognizer:singleTapRecogniser];
과 :
차라리 눈에 보이지 않는 버튼을 추가하고 크기를 조정하는 대신 내 헤더보기에 UITapGestureRecognizer를 추가 할 것
- (void) handleGesture:(UIGestureRecognizer *)gestureRecognizer;
당신이보고 gesture.view을 사용할 수있는 만졌어. 그럼 당신은 그것이 헤더 어느 알아 할 필요가 무엇이든 (태그, 데이터 배열 조회 ...) 여기
나는 다음과 같이 메소드를 변경해야한다고 생각합니다 : '- (void) gestureHandler : (UIGestureRecognizer *) gestureRecognizer;' 'gestureHandler' – fsulser
YourView * tappedView = (YourView *) gestureRecognizer.view;를 사용하십시오. 어느보기가 더 분명하게 만져 졌는지보기 –
는 스위프트 2에서 나를 위해 일한 것입니다 :
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let v = UITableViewHeaderFooterView()
v.textLabel?.text = "Header Text"
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap))
tapRecognizer.delegate = self
tapRecognizer.numberOfTapsRequired = 1
tapRecognizer.numberOfTouchesRequired = 1
v.addGestureRecognizer(tapRecognizer)
return v
}
func handleTap(gestureRecognizer: UIGestureRecognizer)
{
print("Tapped")
}
또는 당신은 단지를 반환 할 수 있습니다 "viewForHeaderInSection"메서드에서 헤더 크기의 UIButton,보기를 추가하고 그것을 반환하는 것 –