我正在尝试使用位于其上方的“完成”按钮创建一个选择器控制器,以显示在另一个视图中的表单。
我创建了一个UIViewController的子类并使用IB我添加了一个工具栏和一个选择器视图。这看起来很好,通过复制UICatalog中的示例,我可以让它显示所需的值,我可以听取选择等。
alt text http://web.me.com/gareth.davis/so/settlement_picker_ui.png
在上面我已经将视图的背景颜色设置为alpha 0.0。我也尝试将自己的视图的alpha设置为0.0,这只是显示一个完全透明的视图。
alt text http://web.me.com/gareth.davis/so/picker_running_in_app.png
以上是使用以下方式显示在表单顶部的视图控制器:
[self presentModalViewController:settlementPickerViewController
animated:YES];
除了尝试设置我的视图的各种alpha属性之外,我还尝试按顺序更改视图的高度,这样就不需要透明的部分,麻烦的是视图然后定位在中间的一半屏幕。
答案 0 :(得分:3)
解决方案似乎不是使用UIViewController而是简单的自定义UIView很好地完成了这项工作。
我在awakeFromNib方法中使用了Haentz的颜色设置:
- (void)awakeFromNib {
picker.delegate = self;
self.backgroundColor = [UIColor clearColor];
}
请注意,您必须实现此操作,而不是使用x-code模板为您提供的initWithFrame方法,因为nib控制的视图不使用initWithFrame(来自Apple文档)。
答案 1 :(得分:2)
可能我只是不明白,但我并不完全明白这里的问题是什么。在底部的屏幕截图中,UI元素应该是透明的,上面没有白色区域吗? 您需要在UIViewController中正确设置UIView的框架,我猜您可能需要将背景颜色设置为透明:
self.view.backgroundColor = [UIColor clearColor];
我不确定,因为我从不使用IB,但可以将基本视图的背景颜色的Alpha值设置为0.不是视图本身的alpha值,而是背景颜色的alpha值