아이폰 용 & twitter 앱에 Facebook과 같은 애니메이션 행 메뉴를 만드는 방법의 예를 찾고 있습니다. TTTableViewController
에는 showMenu:forCell:
메서드가 있지만 사용 방법에 대한 예제를 찾을 수 없었습니다. URL 네비게이터 선택기의 컨텍스트에서 특히 그렇지만 모든 예제가 훌륭합니다.TTTableViewController showMenu : forCell : example
0
A
답변
0
예를 찾을 수 있었습니까?
나도 같은 문제로 붙어있었습니다. 일주일 전 TTTableViewController showMenu : forCell : 메서드를 사용하는 예제를 찾을 수 없습니다. 코드를 망쳐 놓은 후에 나는 이걸 생각해 냈다.
TTTableViewCell의 하위 클래스를 만들고 (메뉴 뷰를 시작하는 트리거로) UIButton을 뷰에 추가한다.
@interface MyViewCell : TTTableViewCell {
}
- (id) initWithName:(NSString *)name target:(id)target action:(SEL)action {
// ...
UIButton *moreButton = [UIButton buttonWithType:UIButtonTypeCustom];
moreButton.frame = CGRectMake(268.0f, 6.0f, 32.0f, 32.0f);
[moreButton setImage:TTIMAGE(@"bundle://Icon_More.png")
forState:UIControlStateNormal];
[moreButton addTarget:target action:action
forControlEvents:UIControlEventTouchUpInside];
[self moreButton];
// ...
}
다음, TTTableViewController의 서브 클래스를 생성하고 데이터 소스에 정의 TTTableViewCells 추가. forCell :라고 ShowMenu는 어디에 액션 핸들러에서
@interface MyTableViewController : TTTableViewController {
}
- (void) createModel {
self.dataSource = [TTListDataSource dataSourceWithObjects:
[[[ContactViewCell alloc] initWithName:@"Cell 1"
target:self
action:@selector(moreButtonDidPress:)]
autorelease],
[[[ContactViewCell alloc] initWithName:@"Cell 2"
target:self
action:@selector(moreButtonDidPress:)]
autorelease],
nil];
}
, 즉이다. 트릭은 버튼이 속한 셀을 판별하여 그 셀을 메뉴보기로 바꾸는 것입니다. 이것이 내가 한 일이다.
- (void) moreButtonDidPress:(id)sender {
// Load our custom menu view from a nib.
UIView *menuView = [[UIView alloc] initWithFrame:cell.contentView];
UIButton *moreButton = (UIButton *) sender;
// Convert plusButton bounds to the the coordinate system of table view
// and then get the cell containing the button.
CGRect coord = [plusButton convertRect:moreButton.bounds toView:self.tableView];
NSIndexPath *path = [self.tableView indexPathForRowAtPoint:coord.origin];
TTTableViewCell* cell = (TTTableViewCell*) [self.tableView
cellForRowAtIndexPath:path];
// Now call showMenu with the menu to display on the associated cell.
[self showMenu:menuView forCell:cell animated:YES];
}
정확하게 URL 네비게이터 선택기를 사용하지는 않지만 작동합니다.
멋쟁이. 단지 호기심. 일반적으로 내 TTTableViewController는 사용자 지정 Model 클래스를 사용하는 사용자 지정 DataSource 클래스를 사용하는 데이터 소스/모델 패턴을 사용합니다. DataSource 클래스의 selector를 전달하면 TTTableViewController에서 selector를 정의 할 수 있습니까? 어느 쪽이든 정말 좋으므로 게시 해 주셔서 감사합니다! – Ben
또한 TTTableViewItem 대신 TTTableViewCell을 생성하는 것으로 나타났습니다. 현재 320의 매우 달콤한 부분 인 html을 사용하여 각 셀을 레이아웃 할 수있는 TTTableStyledTextItem을 사용하고 있습니다. 사용 해보았습니까? 그렇다면 셀 방식으로 전환하는 이유는 무엇입니까? 많은 감사 ... Ben – Ben
ShowMenu : forCell : TTTableViewController에서만 호출 할 수 있으며 메뉴 뷰와이를 트리거하는 테이블 셀에 대한 참조가 필요합니다. 따라서 선택기는 TTTableViewController에 있어야하거나 선택기에 TTTableViewController 객체에 대한 참조가 제공되어야합니다. 그것은 도전입니다. – Cybersam