iOS 透明 ViewController

Posted

技术标签:

【中文标题】iOS 透明 ViewController【英文标题】:iOS Transparent ViewController 【发布时间】:2012-09-24 09:23:25 【问题描述】:

我正在尝试创建一个透明的模态 ViewController,它覆盖当前的 ViewController。我将 backgroundcolor 设置为 clearcolor 但背景是黑色的, 因为另一个视图控制器没有显示在新的视图控制器后面。我想要一个像 UIAlertView 这样的叠加层。

我用谷歌搜索了很多,我找到的唯一解决方案是添加一个子视图。 我用的是ios5。

【问题讨论】:

是的,添加子视图似乎是唯一可行的解​​决方案。 发布一些代码。你试过什么。为什么不能使用带有 clearColor 的 UIView 作为 subView? 我可以添加一个子视图,但在我的情况下使用单个控制器会更好 【参考方案1】:

将背景颜色设置为清除您呈现模型视图后,将背景设置为清除然后呈现将不起作用。

如果你想呈现 UIAlertView 之类的视图,请使用这个-

CAKeyframeAnimation *animation = [CAKeyframeAnimation
        animationWithKeyPath:@"transform"];

    CATransform3D scale1 = CATransform3DMakeScale(0.5, 0.5, 1);
    CATransform3D scale2 = CATransform3DMakeScale(1.2, 1.2, 1);
    CATransform3D scale3 = CATransform3DMakeScale(0.9, 0.9, 1);
    CATransform3D scale4 = CATransform3DMakeScale(1.0, 1.0, 1);

    NSArray *frameValues = [NSArray arrayWithObjects:
        [NSValue valueWithCATransform3D:scale1],
        [NSValue valueWithCATransform3D:scale2],
        [NSValue valueWithCATransform3D:scale3],
        [NSValue valueWithCATransform3D:scale4],
        nil];
    [animation setValues:frameValues];//Courtesy zoul.fleuron.cz

    NSArray *frameTimes = [NSArray arrayWithObjects:
        [NSNumber numberWithFloat:0.0],
        [NSNumber numberWithFloat:0.5],
        [NSNumber numberWithFloat:0.9],
        [NSNumber numberWithFloat:1.0],
        nil];    
    [animation setKeyTimes:frameTimes];

    animation.fillMode = kCAFillModeForwards;
    animation.removedOnCompletion = NO;
    animation.duration = .2;
    [self.backColor SETCOLOUR HERE];
    [self.layer addAnimation:animation forKey:@"uialertViewPopUP"];

你可以使用上面给出的代码覆盖willMoveToSuperView 方法。

【讨论】:

【参考方案2】:

在这些方面是可行的。我们是根据这篇文章做到的:

http://trongdth.blogspot.com/2011/08/create-overlay-view-in-ios.html

【讨论】:

以上是关于iOS 透明 ViewController的主要内容,如果未能解决你的问题,请参考以下文章

opencv ios透明图片加载不透明

在 ios 7 中制作透明导航栏和透明标签栏。

iOS 设置视图半透明而子控件不透明

具有透明背景和不透明前景的 iOS 模态 ViewController

iOS如何使透明视图的子视图不透明?

使我的 iOS 7 应用程序中的键盘半透明/透明