UIButton阴影层效果

Aks*_*ani 6 objective-c shadow uibutton ios

我正在创建一个类似于这个图像的UIButton: 在此输入图像描述

我通过使用以下代码尝试了它:

+(void)createShadowOnView:(UIView *)view color:(UIColor *)color width:(CGFloat)width height:(CGFloat)height shadowOpacity:(CGFloat)shadowOpacity andShadowRadius:(CGFloat)radius{

    view.layer.masksToBounds = NO;
    view.layer.shadowColor = color.CGColor;
    view.layer.shadowOffset = CGSizeMake(width,height);
    view.layer.shadowOpacity = shadowOpacity;
    [view.layer setShadowRadius:radius];
}
Run Code Online (Sandbox Code Playgroud)

我能够做到这一点:

在此输入图像描述

我希望Button上的阴影效果只保留在底部.

我怎样才能达到预期的效果.

小智 6

也许你应该设置视图的backgroundcolor,所以标题没有阴影,你可以设置view.layer.shadowOffset来改变阴影大小.

UIButton *customBTn = [UIButton buttonWithType:UIButtonTypeCustom];
customBTn.backgroundColor = [UIColor whiteColor];
customBTn.frame = CGRectMake(100, 100, 200, 50);
[customBTn setTitle:@"Sign Up" forState:UIControlStateNormal];
[customBTn setTitleColor:[UIColor colorWithRed:1/255.0 green:168/255.0 blue:244/255.0 alpha:1.0] forState:UIControlStateNormal];
customBTn.layer.borderColor = [UIColor colorWithRed:1/255.0 green:168/255.0 blue:244/255.0 alpha:1.0].CGColor;
customBTn.layer.borderWidth = 2;
customBTn.layer.cornerRadius = 25;
customBTn.layer.shadowColor = [UIColor lightGrayColor].CGColor;
customBTn.layer.shadowOffset = CGSizeMake(0,8);
customBTn.layer.shadowOpacity = 0.9;
[self.view addSubview:customBTn];
Run Code Online (Sandbox Code Playgroud)

输出: -

在此输入图像描述


Aru*_*aya 5

您的代码唯一的问题是您错过了为注册按钮设置背景颜色。使用此代码,

self.signUpButton.backgroundColor = [UIColor whiteColor];
[UIView createShadowOnView:self.signUpButton color:[UIColor lightGrayColor] width:0 height:2 shadowOpacity:0.3 andShadowRadius:0];
Run Code Online (Sandbox Code Playgroud)