【问题标题】:UIActionSheet with UIDatePicker subview has a small see through area带有 UIDatePicker 子视图的 UIActionSheet 有一个小的透视区域
【发布时间】:2013-11-30 23:20:14
【问题描述】:

我正在尝试将 UIDatePicker 视图放入 UIActionSheet。你可以看到我在这里遇到的问题。即使没有键盘,您仍然可以从那个位置看到背景。我在下面包含了当用户点击屏幕上的按钮时调用的代码。澄清一下,作为背景的视图控制器是一个具有自己导航层次结构的模态视图控制器。除了这个问题(这并不重要),但我想将两个选择按钮移动到日期选择器下方。有没有简单的方法可以做到这一点?

//How I initialized the action sheet
dateActionSheet = [[UIActionSheet alloc] initWithTitle:@"Choose Date" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Done", nil];

//This code gets called when the user taps a button on the screen
datePicker.datePickerMode = UIDatePickerModeDate;   //UIDatePicker datePicker
[dateActionSheet addSubview:datePicker];        
[dateActionSheet showInView:self.view];

CGRect menuRect = dateActionSheet.frame;
CGFloat orgHeight = menuRect.size.height;
menuRect.origin.y -= 214; //height of picker
menuRect.size.height = orgHeight+214;
dateActionSheet.frame = menuRect;


CGRect pickerRect = datePicker.frame;
pickerRect.origin.y = orgHeight;
datePicker.frame = pickerRect;

【问题讨论】:

  • 请记住,UIActionSheet 从未被设计为支持添加自定义视图,尽管有很多人这样做。就像 iOS 7 中 UIAlertView 中的自定义视图一样,这种用法很可能会被破坏。
  • 谢谢。那么有什么更好的选择呢?
  • 实现您自己的自定义视图来做您想做的事情,或者在 github 上查找完全支持做您想做的事情的众多操作表替换之一。
  • 那么有没有办法通过自定义视图获得相同的效果?
  • 当然。通过足够的努力,您可以使用自定义视图重新创建任何效果。

标签: ios uiview uidatepicker uiactionsheet


【解决方案1】:

来自UIActionSheet class reference

UIActionSheet 并非设计为子类化,也不应将视图添加到其层次结构中。

相反,创建您自己的视图,或使用第三方库,例如 RMDateSelectionViewController

【讨论】:

  • 感谢您的链接。这看起来像我需要的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 2012-04-28
  • 2016-07-18
  • 2018-05-31
  • 2011-09-30
  • 1970-01-01
相关资源
最近更新 更多