4

我正在尝试创建一个选择器控制器,其上方有一个“完成”按钮,以显示在另一个视图中的表单上。

我创建了 UIViewController 的子类,并使用 IB 添加了工具栏和选择器视图。这看起来很好,通过复制 UICatalog 中的示例,我可以让它显示所需的值,我可以监听选择等。

替代文字 http://web.me.com/gareth.davis/so/settlement_picker_ui.png

在上面,我将视图的背景颜色设置为 alpha 0.0。我还尝试将它自身的视图的 alpha 设置为 0.0,这只是显示一个完全透明的视图。

替代文字 http://web.me.com/gareth.davis/so/picker_running_in_app.png

以上是显示在我的表单顶部的视图控制器,使用:

    [self presentModalViewController:settlementPickerViewController                         
                        animated:YES];

除了尝试设置视图的各种 alpha 属性之外,我还尝试更改视图的高度,以便不需要透明部分,麻烦的是视图随后位于屏幕的一半。

4

2 回答 2

3

解决方案似乎不是使用 UIViewController 而是一个简单的自定义 UIView 很好地完成了这项工作。

我在 awakeFromNib 方法中使用了 Haentz 的颜色设置:

- (void)awakeFromNib {
    picker.delegate = self;
    self.backgroundColor = [UIColor clearColor];    
}

请注意,您必须实现这一点,而不是使用 x-code 模板为您提供的 initWithFrame 方法,因为 nib 控制的视图不使用 initWithFrame (来自苹果文档)。

于 2009-05-04T10:57:26.637 回答
2

可能我只是不明白,但我不完全明白这里有什么问题。在底部截图中,UI 元素是否应该是透明的,没有上面的白色区域?您需要在 UIViewController 中适当地设置 UIView 的框架,我想您可能必须将背景颜色设置为透明:

self.view.backgroundColor = [UIColor clearColor];

我不确定,因为我从不使用 IB,但可以将基本视图的背景颜色的 Alpha 值设置为 0。不是视图本身的 alpha,而是背景颜色的 alpha。

于 2009-05-03T16:54:52.153 回答