UIActionSheet,Nav和Tab Bar内的DatePicker被剪裁

时间:2011-06-11 07:55:17

标签: iphone objective-c uitabbarcontroller uidatepicker

因此我花费了大量时间尝试创建日期选择器操作表(因此它看起来比常规全屏视图更好)并且它只是不想在正确的位置加载。目前,操作表弹出约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];

如果有人能让我知道我做错了什么,我们将非常感激。

感谢。

1 个答案:

答案 0 :(得分:0)

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

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

检查appropriateFrame的正确值是什么并使用它们。从底部到它的位置的动画将被照顾。