【问题标题】:UIDatePicker repositioning to the bottom of the viewUIDatePicker 重新定位到视图的底部
【发布时间】:2015-04-20 05:17:16
【问题描述】:

我正在构建一个待办事项应用程序,用户可以在其中选择提醒选项。如果启用了提醒,则将启用 UIDatePicker。我用故事板创建了主 UI。所以我最初的UI是这样的

但是在禁用并再次启用提醒开关后,日期选择器放置在视图顶部。我需要将它定位到视图的底部。

我的ViewController代码是这样的

- (IBAction)isReminderSelected:(UISwitch *)sender {
    if([_reminderSetField isOn]){
    [_reminderSetField.viewForBaselineLayout addSubview: _reminderDatePicker];
}
else {
    [_reminderDatePicker removeFromSuperview];}
}

我通过情节提要创建了主 UI。然后在头文件中初始化datepicker....

我的 *.h 文件

  @property (strong, nonatomic) IBOutlet UISwitch *reminderSetField;
  @property (strong, nonatomic) IBOutlet UIDatePicker *reminderDatePicker; 
  - (IBAction)isReminderSelected:(UISwitch *)sender;

【问题讨论】:

  • 您对日期选择器有什么限制?
  • 我没有任何限制。
  • 能否请您上传我们无法从该代码sn-p中理解的日期选择器的设置代码
  • 我通过情节提要创建了主 UI。然后初始化头文件中的datepicker....我在问题中添加了头文件部分。
  • 如果你没有关闭自动布局,那么它就会打开,系统会为你添加约束——它们通常不是你想要的。您应该添加自己的约束。

标签: ios objective-c cocoa-touch uidatepicker


【解决方案1】:

你应该设置y选择器视图的位置

float y = [UIScreen mainScreen].bounds.size.height - _reminderDatePicker.frame.size.height;

[_reminderDatePicker setFrame:CGRectMake(0, y, _reminderDatePicker.frame.size.width, _reminderDatePicker.frame.size.height)];

【讨论】:

  • 不工作。我仍然可以在同一个地方获得 DatePicked。
【解决方案2】:

我认为你应该这样尝试

- (IBAction)isReminderSelected:(UISwitch *)sender {
    if([_reminderSetField isOn]){
        float y = [UIScreen mainScreen].bounds.size.height - _reminderDatePicker.frame.size.height;

        [_reminderDatePicker setFrame:CGRectMake(0, y, _reminderDatePicker.frame.size.width, _reminderDatePicker.frame.size.height)];
[yourView addSubView:_reminderDatePicker];
}
else {
        [_reminderDatePicker removeFromSuperview];}
}

【讨论】:

    猜你喜欢
    • 2021-05-11
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    相关资源
    最近更新 更多