2016-11-21 5 views
0

왼쪽에의 TableView 표시 세포는 uncorrectly

결과
 self.resultSearchController = ({ 
     let controller = UISearchController(searchResultsController: nil) 
     controller.searchResultsUpdater = self 
     controller.dimsBackgroundDuringPresentation = false 
     controller.searchBar.sizeToFit() 
     controller.searchBar.barStyle = UIBarStyle.black 
     controller.searchBar.barTintColor = UIColor.white 
     controller.searchBar.backgroundColor = UIColor.clear 
     controller.hidesNavigationBarDuringPresentation = false 
     self.tableView.tableHeaderView = controller.searchBar 
     return controller 
    })() 

플러스를 표시하고, 특히 텍스트의 시작을 표시 정상에 메모 텍스트가() 메소드의 viewDidLoad에 UISearchController 만들기 속성

var resultSearchController = UISearchController() 

되세요 각 셀의 상단 모서리. 무엇이 잘못 될 수 있습니까? 오후 8시 30 분 P.S. 그것이 내가 이러한 구조를 본 적이 없다 이후, 당신은 resultSearchController를 만드는 방법에 익숙하지 않다 UISearchBar

enter image description here

답변

0

나는 실수를 한 줄을 발견했다. cell.noteLabel 대신에 cell.textLabel 속성을 사용했습니다. 너의 시간 동안 타이.

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cellIdentifier = "NoteTableViewCell" 

    let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! NoteTableViewCell 
    let note: Note 
    if self.resultSearchController.isActive { 
     note = filteredNotes[indexPath.row] 
     cell.textLabel?.text = filteredNotes[indexPath.row].note 
    } else { 
     note = notes[indexPath.row] 
     cell.textLabel?.text = notes[indexPath.row].note 
    } 

    return cell 
} 
+0

문제 없습니다. 행운아. – MacUserT

1

와는 아무 상관이없는 대부분 알아 냈어. 그러나 그것은 내 제한된 지식 일 수 있습니다. resultSearchController를 조금 더 다르게 성공한 결과로 만들 것입니다.

lazy var resultSearchController : UISearchController = { 
     let controller = UISearchController(searchResultsController: nil) 
     controller.searchResultsUpdater = self 
     controller.dimsBackgroundDuringPresentation = false 
     controller.searchBar.sizeToFit() 
     controller.searchBar.barStyle = UIBarStyle.black 
     controller.searchBar.barTintColor = UIColor.white 
     controller.searchBar.backgroundColor = UIColor.clear 
     controller.hidesNavigationBarDuringPresentation = false 
     self.tableView.tableHeaderView = controller.searchBar 
     return controller 
}() 

사용시 생성 될 변수를 지연 초기화하고 정의한 모든 설정을 얻는 올바른 방법입니다.

이것이 작동하지 않는다면 문제가되는 정의 및 초기화가 아니며 잘못 될 수있는 코드가 더 많이 표시되어야합니다.

+0

이 조언을위한 내용 – L1GhTUA

+0

지금 작동합니까? – MacUserT

+0

그래, 내 대답을 읽어라 – L1GhTUA