【问题标题】:How to do colour shading in Objective-C如何在 Objective-C 中进行颜色着色
【发布时间】:2016-10-22 07:08:13
【问题描述】:

我需要在目标 c 中进行颜色着色。如图所示,阴影在 HardService 和 SoftService 的按钮上。

有没有办法做到这一点?提前致谢!

【问题讨论】:

  • 您可以为此使用渐变图像或 CAGradientLayer

标签: ios objective-c xcode uibutton


【解决方案1】:

CAGradientLayer 将满足您的目的 - 参考:

http://blog.apoorvmote.com/gradient-background-uiview-ios-swift/

【讨论】:

    【解决方案2】:

    您可以为此使用渐变图像或 CAGradientLayer

    CAGradientLayer 添加到现有按钮:

    CAGradientLayer *gradient = [CAGradientLayer layer];
    gradient.frame = button.bounds;
    gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor whiteColor] CGColor], (id)[[UIColor blackColor] CGColor], nil];
    [button.layer insertSublayer:gradient atIndex:0];
    

    【讨论】:

      【解决方案3】:

      您可以使用图像来显示阴影。使用模糊图像或更改图像视图的 alpha。

      或者,如果您想以编程方式进行,请尝试:

      对象c:

      //create elliptical shadow for button through UIBezierPath
      CGRect ovalRect = button.bounds;
      UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:ovalRect];
      
       //applying shadow to path
       button.layer.shadowColor = [UIColor yourcolor].CGColor;
       button.layer.shadowOffset = CGSizeMake(0.0, 0.0);
       button.layer.shadowOpacity = 1.0;
       button.layer.shadowRadius = 3.0;
       button.layer.shadowPath = path.CGPath;
      

      斯威夫特:

      //create elliptical shdow forimage through UIBezierPath
      var ovalRect = button.bounds
      var path = UIBezierPath(ovalInRect: ovalRect)
      
      //applying shadow to path
      button.layer.shadowColor = UIColor(white: 0.0, alpha: 0.5).CGColor
       button.layer.shadowOffset = CGSizeMake(0.0, 0.0)
      button.layer.shadowOpacity = 1.0
      button.layer.shadowRadius = 3.0
      button.layer.shadowPath = path.CGPath
      

      取自http://www.innofied.com/implementing-shadow-ios/,也可以看看了解更多:UIView with rounded corners and drop shadow?

      我的另一个与此相关的答案:Drop shadow in ios

      【讨论】:

      • kShadowColor 听到了什么?
      • 我想要按钮上的阴影而不是按钮的阴影。
      猜你喜欢
      • 2015-01-20
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 2018-10-12
      • 2012-01-24
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      相关资源
      最近更新 更多