设置 UIView 的一部分的 alpha

Posted

技术标签:

【中文标题】设置 UIView 的一部分的 alpha【英文标题】:Set alpha of a portion of a UIView 【发布时间】:2012-03-02 12:24:04 【问题描述】:

当用户点击 SearchBar 时,我需要使视图的矩形部分变黑。我想不出办法做到这一点。我尝试了 CGRectMake,但如何设置该矩形的 alpha 值?

【问题讨论】:

【参考方案1】:

您为什么不添加另一个UIView 并在某些事件中将其添加到UIView

【讨论】:

我有一个搜索栏,当用户点击它时,我使用 CATransition 将其向上移动,并显示取消按钮。现在,在此之后,我希望搜索栏下方的其余视图呈黑色......有点像 twitter 应用程序..#Discover 选项卡【参考方案2】:

添加一个黑色背景的 UIImageView:

    UIImageView *myView= [[UIImageView alloc] initWithFrame:CGRectMake(x, y, width, height)];
    myView.backgroundColor = [UIColor blackColor];
    [self.view addSubview:myView];
    [myView release];

【讨论】:

【参考方案3】:

可以通过以下方式向视图层添加子层来完成

UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(50.0, 0.0, 100.0, 100.0)] autorelease]; view.backgroundColor = [UIColor grayColor]; [self.view addSubview:view];

CALayer *layerUP = [CALayer layer];
[layerUP setFrame:CGRectMake(0.0, 0.0, 100.0, 50.0)];
[layerUP setBackgroundColor:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0].CGColor];
[view.layer addSublayer:layerUP];

CALayer *layerDown = [CALayer layer];
[layerDown setFrame:CGRectMake(0.0, 50.0, 100.0, 50.0)];
[layerDown setBackgroundColor:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.2].CGColor];
[view.layer addSublayer:layerDown];

【讨论】:

以上是关于设置 UIView 的一部分的 alpha的主要内容,如果未能解决你的问题,请参考以下文章

带有 alpha 设置的 UIView 的点击事件转到底层按钮

在 xib 中带有 alpha 的 UIView 背景颜色

创建阴影视图

UIView的不透明度和alpha是不是相同[重复]

视图不在屏幕时的 UIView 动画 alpha 不起作用

使用 [UIView animateKeyframesWithDuration] 为 UIView 设置动画的奇怪行为