【问题标题】:Time picker using UIPickerView/UIDatePicker使用 UIPickerView/UIDatePicker 的时间选择器
【发布时间】:2016-08-22 18:09:50
【问题描述】:

我正试图围绕 UIPickerView 以及如何使用它来制作时间选择器。我发现 UIDatePicker 有时间模式,但那是一个组件,而不是一个视图类。但我不确定如何制作复杂的 PickerView 而不是一些字符串。这是我到目前为止所拥有的:

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 注释掉,因为它只是位于选择器的顶部,这显然不是我想要的。我看不到如何使用 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

【问题讨论】:

    标签: rubymotion


    【解决方案1】:

    我决定以不同的方式处理它,而不是使用 TableView 和 DatePicker 作为组件。 UITableView 有一个 tableHeaderView 方法,我把选择器放在那里。这样我什至不需要使用自动布局。希望对将来的人有所帮助。

    这是视图本身:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      相关资源
      最近更新 更多