사용자 정의 MKMarkerAnnotationView에 UITableViewCell로 표시하려는 tableview가 있습니다. 이 테이블 뷰는 전용 ViewController에 표시되고 ViewController는 TabBarController에 있습니다. 두 번째 Tab은 Map을 표시합니다 (그러나 여기서는 중요하지 않습니다).커스텀 MKMarkerAnnotationView가 처음으로 UITableViewCell에 올바르게 표시되지 않습니다.
좀 라벨과 구현의 클래스 "EdgePinViewAnnotation"와보기를 포함 나가있는 UITableViewCell을 추가 한있는 TableView 내 스토리 보드에서 MKMarkerAnnotationView 에서 상속하는 클래스 "EdgePinViewAnnotation"를 만든
UITableViewCell, 내 사용자 지정 "EdgePinViewAnnotation"초기화 해요. 불행히도 셀이 표에 표시되면 내 기본 설정 인 "EdgePinViewAnnotation"이 아니라 기본 MKMarkerAnnotationView가 표시됩니다.
내 TableView를 스크롤하면 셀이 화면을 벗어나서 새로 고쳐지면서 내 "EdgePinViewAnnotation"이 올바르게 표시됩니다.
처음으로 올바르게 표시되지 않는 이유는 무엇입니까? 여기
나는 정말하지 않습니다를 이해하는 경우에도 해결책을 발견 내 jQuery과
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.section == 0 {
if let cell = tableView.dequeueReusableCell(withIdentifier: CellId.DistanceConfigurationCellId, for: indexPath) as? DistanceConfigurationTableViewCell {
cell.theLabel.text = findMe.edgePoints[indexPath.row].address
let coord = findMe.edgePoints[indexPath.row].coordinate
cell.coordinates.text = "Lat:\(coord.latitude)/Long:\(coord.longitude)"
cell.theTextField.text = "\(findMe.edgePoints[indexPath.row].distance)"
cell.theTextField.delegate = self
cell.theTextField.tag = indexPath.row
cell.theMarker.initWith(edgePin:findMe.edgePoints[indexPath.row])
return cell
}
} else {
return UITableViewCell()
}
}
class DistanceConfigurationTableViewCell: UITableViewCell {
@IBOutlet weak var theLabel: UILabel!
@IBOutlet weak var coordinates: UILabel!
@IBOutlet weak var theTextField: UITextField!
@IBOutlet weak var theMarker: EdgePinViewAnnotation!
}