objc.io #1 Clean Table View Code

1718 ワード

  • UIViewController or UItableView Controller
  • を選択
    UItableView Controlの限界:そのviewは常に1つのtableview UItableView Controlの特性に属します.tableviewが最初に表示されたときにデータがロードされ、ドロップダウン・リフレッシュがサポートされます.
    UIdiewControllerでUItable ViewControllerを使用することで、UItable ViewControllerをChild View Controllerとして使用します.彼らの間でメッセージ通信を確立する必要がある場合は、delegate protocolで実現できます.
        - (void)addTalkingDetailViewController{
           TalkingDetailController *talkingDetailController = [[TalkingDetailController alloc] init];
           talkingDetailController.delegate = self;
    
           talkingDetailController.talings = @[@"hi!",@"Hello!",@"Nice to meet you",@"me too", @"are you ok", @"I'am fine", @"burden ", @"come on"];
    
           [self addChildViewController:talkingDetailController];
           CGRect frame = self.view.bounds;
           frame.origin.y = 100;
        // frame.size.height = frame.size.height - 200;
           talkingDetailController.view.frame = frame;
           [self.view addSubview:talkingDetailController.view];
    
           [talkingDetailController didMoveToParentViewController:self];
        }
    
        #pragma mark - talking delegate
    
        - (void)tableView:(UITableView *)tableView didselectRow:(NSIndexPath *)indexPath
        {
         DetailController *detail = [[DetailController alloc] init];
         CGRect frame = self.view.bounds;
         detail.view.frame = frame;
         UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
         detail.label = cell.textLabel.text;
         [self.navigationController pushViewController:detail animated:YES];
    
        }
    
  • cellの設計を露出することなくcategoryでパッケージ
  • を行う.
  • cell内部でcell状態(ハイライト、高さなどの属性)を制御すると、これらの属性がカスタムcellに設定されます.