2016-11-20 2 views
0

날짜 선택 도구 위의 행을 클릭 할 때마다 필자의 날짜 선택 도구가 숨길 수 없습니다. 오히려 행을 클릭하면 처음에는 무언가를 클릭 할 때와 같이 어두운 회색으로 강조 표시됩니다. 왜 이런 일이 일어나는 걸까요? 내 datePicker가 숨기지 않는 이유는 무엇입니까?왜 내 DatePicker가 숨기지 않습니까?

class TableViewController: UITableViewController { 

@IBOutlet weak var detailLabel: UILabel! 
@IBOutlet weak var datePicker: UIDatePicker! 
private var datePickerHidden = false 



override func viewDidLoad() { 
    super.viewDidLoad() 
    datePickerChanged() 
    self.tableView.backgroundColor = UIColor.lightGray 

} 

@IBAction func valueChanged(_ sender: UIDatePicker) { 
    let formatter = DateFormatter() 
    formatter.dateStyle = .short 
    formatter.timeStyle = .short 
    detailLabel.text = formatter.string(from:sender.date) 
} 

func datePickerChanged() { 
    detailLabel.text = DateFormatter.localizedString(from: datePicker.date, dateStyle: DateFormatter.Style.short, timeStyle: DateFormatter.Style.short) 
} 


func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    if indexPath.row == 0 { 
     toggleDatepicker() 
    } 
    tableView.deselectRow(at: indexPath as IndexPath, animated: true) 
} 

private func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    if !datePickerHidden && indexPath.row == 1 { 
     return 0 
    } 
    else { 
     return 100 
    } 
} 

private func toggleDatepicker() { 

    datePickerHidden = !datePickerHidden 

    tableView.beginUpdates() 
    tableView.endUpdates() 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
}} 

의견이 있으십니까? 이 같은

+0

이동'datePickerHidden = datePickerHidden' tableView.beginUpdates'후()'!. 'datePickerHidden'가'true'로 초기화되면 작동하는지 확인하십시오. – byJeevan

+0

나는 이것을 시도했지만 행운이 없었습니다 –

+0

어떻게 피커를 보여 주나요? tableview의 첫 번째 행을 클릭하면'toggleDatepicker' 만 호출됩니다. 귀하의 코드는 다음과 같이 작성되었습니다. 스토리 보드 또는 XIB – Vinodh

답변

0

업데이트 코드 :

datePickerHidden = !datePickerHidden 
datePicker.hidden = datePickerHidden 
+0

에서 피커를 숨기고 있습니까? 작동하지 않습니다. 다른 제안? –

관련 문제