在另一个视图上显示UIViewController/UIView

4
我正在尝试创建一个选择器控制器,其中包含一个位于其上方的“完成”按钮,以在另一个视图中显示表单。我已经创建了一个UIViewController的子类,并使用IB添加了一个工具栏和一个选择器视图。这似乎很好,通过复制UICatalog中的示例,我可以使其显示所需的值,并且可以监听选择等事件。在上述示例中,我将视图的背景颜色设置为alpha 0.0。我也尝试将视图本身的alpha设置为0.0,但这只会显示完全透明的视图。以上是显示在我的表单上方的视图控制器。
    [self presentModalViewController:settlementPickerViewController                         
                        animated:YES];

除了尝试设置视图的各种 alpha 属性外,我还尝试改变视图的高度,以便不需要透明部分,但问题是视图会被定位在屏幕中间。

2个回答

3
解决方案似乎是不使用UIViewController,而是使用一个简单的自定义UIView可以很好地完成工作。
我在awakeFromNib方法中使用了Haentz的颜色设置:
- (void)awakeFromNib {
    picker.delegate = self;
    self.backgroundColor = [UIColor clearColor];    
}

请注意,您需要实现此功能,并不使用x-code模板提供的initWithFrame方法,因为nib控制的视图不使用initWithFrame(来自苹果文档)。

2

也许是我太笨了,但我并不完全明白问题出在哪里。在下面的截图中,UI元素应该是透明的,没有上面的白色区域吗? 您需要适当设置UIViewController中UIView的框架,并且我想您可能需要将背景颜色设置为透明:

self.view.backgroundColor = [UIColor clearColor];

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


抱歉,是的,白色区域应该在下面的视图中显示基础表单。我已经尝试使用IB设置背景颜色,我会尝试编程方式解决,谢谢。 - Gareth Davis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接