2016-08-22 4 views
0

UIPickerView에서 머리를 감싸고 시간 선택 도구로 사용하는 방법을 배우려합니다. UIDatePicker에는 시간 모드가 있지만 구성 요소는 뷰 클래스가 아니라는 것을 알았습니다. 하지만 일부 문자열 대신 복잡한 PickerView를 만드는 방법을 모르겠습니다. 여기 내가 지금까지 가지고있는 것 :UIPickerView/UIDatePicker를 사용하는 시간 선택 도구

class NewAlarmViewController < UIViewController 
    def viewDidLoad 
    super 

    self.title = "Add Alarm" 
    end 

    def loadView 
    self.view = NewAlarmView.new 

    self.view.showsSelectionIndicator = true 
    self.view.dataSource = self 
    self.view.delegate = self 
    end 

    # Necessary to implement these methods in order to be a datasource 
    # - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; 
    def numberOfComponentsInPickerView pickerView 
    2 
    end 

    # - (NSInteger)pickerView:(UIPickerView *)pickerView 
    # numberOfRowsInComponent:(NSInteger)component; 
    def pickerView(pickerView, numberOfRowsInComponent:component) 
    24 
    end 

    def pickerView(pickerView, titleForRow:row, forComponent:component) 
    "#{row}" 
    end 

    private 

    def create_new_alarm(attributes) 
     Alarm.create(attributes) 
     Alarm.save 
    end 
end 

그리고 내 관점은 여기에 있습니다. 나는 피커의 꼭대기에 앉아서 DatePicker를 주석 처리했다. 분명히 내가 원하는 것은 아니다. 나는 구성 요소로의 TableView와 DatePicker에서와를 사용하는 대신에, 나는 다르게 접근하기로 결정했습니다 pickerView(pickerView, titleForRow:row, forComponent:component)

class NewAlarmView < UIPickerView 
    # attr_accessor :button 

    def init 
    super 

    self.backgroundColor = UIColor.whiteColor 

    # date_picker = UIDatePicker.new 
    # date_picker.frame = [[0, 150], [200, 500]] 
    # date_picker.datePickerMode = UIDatePickerModeTime 
    # addSubview(date_picker) 

    self 
    end 
end 

답변

0

대신/내부 DatePicker에서 사용하는 방법을 볼 수 없습니다. 피커를 집어 넣는 UITableView에 대한 tableHeaderView 방법이 있습니다. 그렇게하면 Autolayout을 사용할 필요조차 없습니다. 희망은 미래에 누군가를 돕습니다.

class NewAlarmView < UITableView 
    attr_accessor :date_picker 

    def initWithFrame(frame, style:style) 
    super 

    self.backgroundColor = UIColor.whiteColor 
    self.scrollEnabled = false 

    @date_picker    = UIDatePicker.new 
    @date_picker.datePickerMode = UIDatePickerModeTime 
    self.tableHeaderView  = @date_picker 

    self 
    end 
end 
: 여기

는 뷰 자체입니다