【问题标题】:UIActionSheet with DatePicker inside of Nav and Tab Bar being clipped带有 DatePicker 的 UIActionSheet 在 Nav 和 Tab Bar 被剪裁
【发布时间】:2023-03-24 06:23:01
【问题描述】:

所以我花了很多时间尝试创建一个日期选择器操作表(所以它看起来比常规的全屏视图更好),它只是不想加载到正确的位置。目前,action sheet 会弹出大约 25%(可能只是标签栏的高度)。

我查看了我能找到的几乎所有 StackOverflow 主题,这意味着我已经尝试创建一个指向我的 appdelegate 的指针并执行 showInView:[[appdelegate window] view] 以及 showFromTabBar:[self tabBarController] tabBar 和 showFromTabBar[self parentViewController] tabBarController] tabBar]。 showInView 或 showFromTabBar 的每次排列都会导致日期选择器向下移动大约标签栏的高度。

澄清一下,我从中启动操作表的视图是选项卡栏中导航栏中的视图。

UIActionSheet *dateSheet = [[UIActionSheet alloc] initWithTitle:@"Action Sheet Message"
                                                       delegate:self
                                              cancelButtonTitle:@"nil
                                         destructiveButtonTitle:@nil 
                                              otherButtonTitles:nil];

UIDatePicker *datePicker = [[[UIDatePicker alloc] init] autorelease];
[dateSheet addSubview:datePicker];
[dateSheet showFromTabBar:[[self tabBarController]tabBar]];
[dateSheet release];

如果有人能告诉我我做错了什么,将不胜感激。

谢谢。

【问题讨论】:

  • 您是否尝试过使用 initWithFrame 初始化程序来初始化您的日期选择器?我认为这样你就可以把你的日期选择器放在任何你想要的地方。
  • 不,我还没有尝试过...我会调查的。谢谢
  • 我只是尝试使用 CGRect 和 initWithFrame... 通过将 y 值更改为负值,我能够在正确的位置获取日期选择器,但现在我无法选择日期选择器……真的难倒这里
  • 你的意思是 datpicker 好像被禁用了?

标签: iphone objective-c uitabbarcontroller uidatepicker


【解决方案1】:

通常UIActionSheet 对象会根据它必须显示的按钮来计算其高度,在您的情况下哪个按钮是无的。所以它的高度很小,你只能看到子视图的一部分 (datePicker)。解决方法是像这样声明一个适当的框架,

[dateSheet addSubview:datePicker];
[dateSheet showFromTabBar:[[self tabBarController]tabBar]];
[dateSheet setFrame:appropriateFrame];
[dateSheet release];

检查appropriateFrame 的正确值并使用它们。将处理从底部到其位置的动画。

【讨论】:

  • 感谢您的建议,尽管我遇到了一个小问题,但似乎一切正常。当我调出操作表时,它会使背景变成不透明的黑色,我无法看穿我的操作表,所以这样看起来真的很糟糕。我尝试将其设置为黑色半透明,这就是我的 UI 的其余部分,但它仍然显示为黑色。关于如何解决这个问题的任何想法?除此之外,您的解决方案终于解决了,谢谢!
  • 我假设您说的是UIDatePicker,它有一个不透明的黑色封面。我不认为你可以自定义它。它本来就是这样的。我看到的唯一方法是创建一个自定义对象。
猜你喜欢
  • 2022-10-16
  • 2019-02-25
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-14
  • 1970-01-01
  • 2017-06-30
相关资源
最近更新 更多