如何创建具有非透明边框的透明UIView

时间:2014-08-28 08:59:14

标签: ios objective-c uiview

我正在尝试制作带边框的透明UIView。问题是边框总是透明的,我怎么能让它变得不透明?

这是我的代码

- (void) viewDidLoad:(BOOL)animated
{

  [super viewDidLoad:animated]; 

  _transparentView.alpha = 0.5f;
  _transparentView.layer.borderColor = [UIColor whiteColor].CGColor;
  _transparentView.layer.borderWidth = 2.0f;
}

4 个答案:

答案 0 :(得分:2)

您可以通过将透明视图添加为另一个视图的子视图(如下图

)来实现
_transparentView.alpha = 0.5f;

_MainView.backgroundColor = [UIColor clearColor];
_MainView.layer.borderColor = [UIColor whiteColor].CGColor;
_MainView.layer.borderWidth = 2.0f;
[_MainView addSubview:_transparentView];

答案 1 :(得分:2)

您可以通过将视图的backgroundColor设置为透明颜色来实现此目的:

_transparentView.backgroundColor = [UIColor colorWithRed:0 green:1 blue:0 alpha:0.5];
_transparentView.layer.borderColor = [UIColor whiteColor].CGColor;
_transparentView.layer.borderWidth = 2.0f;

这将使视图的背景变为透明绿色。

答案 2 :(得分:2)

只需将背景设置为清晰的颜色:

// set the border color
_transparentView.layer.borderColor = [UIColor whiteColor];
// set the border width
_transparentView.layer.borderWidth = 3.0f;
// want rounded corners? set this
_transparentView.layer.cornerRadius = 5.0f;

// make the background clear color to be fully transparent
_transparentView.backgroundColor = [UIColor clearColor];

您不需要子视图或其他任何内容。

答案 3 :(得分:1)

-(void)setRoundedView:(UIView *)vW{
    CALayer *image = vW.layer;
    [image setCornerRadius:5];
    [image setBorderWidth:1];
    image.masksToBounds = YES;
    image.borderColor = [UIColor colorWithRed:202.0/255.0 green:202.0/255.0 blue:202.0/255.0 alpha:1].CGColor;
}