iOS 개발에 대해 배우려고하고 있으며 To-Do 목록 작성을위한 Apple의 자습서를 따르고 있습니다. 튜토리얼 후에, 그들은 계속해서 앱을 만들고, 더 많은 기능을 구현할 것을 추천했다.클릭하면 UITableViewCell에서 더 많은 텍스트가 펼쳐지고 표시됩니다.
사용자가 셀을 클릭하면 확장되고 추가 콘텐츠가 표시됩니다. 예를 들어 탭 때
Buy groceries <- "item1"
Do homework <- "item2"
Go for a jog <- "item3"
이로 바뀝니다 :
Buy groceries <- "item1"
Buy apples <- "subitem1"
Buy bread <- "subitem2"
Buy milk <- "subitem3"
Do homework <- "item2"
Go for a jog <- "item3"
을 마우스 오른쪽 단추로 지금은 XYZToDoSubItem
클래스와 XYZToDoItem
클래스가 있습니다. XYZToDoItem
은 이름, 완료 상태 및 생성 날짜를 XYZToDoSubItem
에서 상속합니다. 또한 SubItem을 포함하는 Mutable Array를 가지고 있습니다.
제가 다른 일련의 기능 구현 :
- 사용자가 "유지" 셀이 편집 모드로 전환을
- 사용자 더블 탭 셀, 그것은 YES로 완료 상태를 설정할 때와 체크 표시 추가
따라서 단일 탭으로 이러한 기능을 방해 할 수 없습니다.
가 나는 또한 하나의 탭에 대해 "청취자"가 (viewDidLoad
기능을 완료 할) :
dtp
더블 탭 인식기입니다
-(void) viewDidLoad {
UITapGestureRecognizer *stp = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
stp.numberOfTapsRequired = 1;
stp.numberOfTouchesRequired = 1;
[stp requireGestureRecognizerToFail:dtp];
[self.tableView addGestureRecognizer:stp];
}
.
내 handleSingleTap
기능은 다음과 같습니다 : 기본적으로 작동 방법입니다
- (void)handleSingleTap:(UITapGestureRecognizer *)gestureRecognizer {
CGPoint p = [gestureRecognizer locationInView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:p];
if(indexPath != nil) {
//Add contents to cell and update height here
}
}
를 그 사용자가 셀을 탭 (다시 오기로 진행하지 마십시오 (더 더블 탭 없다)), handleSingleTap
이 실행됩니다. 여기서 우리는 셀의 indexPath
을 두드려 보았습니다. 그게 nil
(셀이 배경이 아니라 도청되었음을 의미합니다)이라면 셀에 내용을 추가하고 높이를 업데이트하고 싶습니다.
어떻게해야합니까?
그냥 [self.tableView realoadData]
또는 [self.tableView beginUpdates]
및 [self.tableView endUpdates]
를 호출 한 후 여러 subtitle
의 같은 내용을 추가 할 수 있으며, 아이폰 OS는 자체의 크기를 조정 처리? 그렇다면 데이터를 어떻게 추가합니까? 그리고 어떻게 resize 메서드를 호출할까요? 그렇지 않다면 데이터를 삽입 한 후 수동으로 셀의 크기를 조정하는 방법은 무엇입니까?
내 설정은 다음과 같습니다
In the ViewController class:
@property NSMutableArray *toDoItems;
In the ToDoItem class (inherits from subitem):
@property NSMutableArray *toDoSubItems;
In the SubItem class:
@property NSString *itemName;
@property BOOL completed;
@property (readonly) NSDate *creationDate;
나는 누군가가이 문제를 해결하는 방법을 알아낼 수 있기를 바랍니다.
미리 감사드립니다. 알렉산더.