ios 圆角Button,代码实现可以实现不同角的不同弧度。

demo :http://code4app.com/ios/APRoundedButton/53bb90ba933bf020688b4d1e

UIEdgeInsets insets = UIEdgeInsetsMake(0, 8, 0, 8);

    UIImage *tempImage = [UIImageimageNamed:@"button_logout_bg"];

    tempImage = [tempImage resizableImageWithCapInsets:insets];

    [button setBackgroundImage:tempImage forState:UIControlStateNormal];

 

 

 

 

用法:myBtn = [[APRoundedButtonalloc]initWithFrame:CGRectMake(100, 100, 100, 60)];

    myBtn.style = 4;

    [myBtnsetBackgroundColor:[UIColorredColor]];

    [self.view addSubview:myBtn];

    [myBtnawakeFromNib];

 

 

然后再导入下面的一个文件就行了。。。。。。。设置具体的弧度大小可以进里面改。。。。

 

ornerRadii:CGSizeMake(10.0, 10.0)];/k控制弧度的大小。。。

#import <UIKit/UIKit.h>

 

@interface APRoundedButton : UIButton

 

@property (nonatomic, assign) int style;

 

@end

 

 

 

#import "APRoundedButton.h"

#import <QuartzCore/QuartzCore.h>

 

 

@implementation APRoundedButton

 

- (void)awakeFromNib

{

  [superawakeFromNib];

 

  UIRectCorner corners;

 

 

  switch ( self.style )

  {

    case 0:

      corners = UIRectCornerBottomLeft;

      break;

    case 1:

      corners = UIRectCornerBottomRight;

      break;

    case 2:

      corners = UIRectCornerTopLeft;

      break;

    case 3:

      corners = UIRectCornerTopRight;

      break;

    case 4:

      corners = UIRectCornerBottomLeft | UIRectCornerBottomRight;

      break;

    case 5:

      corners = UIRectCornerTopLeft | UIRectCornerTopRight;

      break;

    case 6:

      corners = UIRectCornerBottomLeft | UIRectCornerTopLeft;

      break;

    case 7:

      corners = UIRectCornerBottomRight | UIRectCornerTopRight;

      break;

    case 8:

      corners = UIRectCornerBottomRight | UIRectCornerTopRight | UIRectCornerTopLeft;

      break;

    case 9:

      corners = UIRectCornerBottomRight | UIRectCornerTopRight | UIRectCornerBottomLeft;

      break;

    default:

      corners = UIRectCornerAllCorners;

      break;

  }

 

 

  UIBezierPath *maskPath = [UIBezierPathbezierPathWithRoundedRect:self.bounds

                                                 byRoundingCorners:corners

                                                       cornerRadii:CGSizeMake(10.0, 10.0)];

  CAShapeLayer *maskLayer = [CAShapeLayerlayer];

  maskLayer.frame         = self.bounds;

  maskLayer.path          = maskPath.CGPath;

  self.layer.mask         = maskLayer;

}

 

 

 

@end

猜你喜欢

转载自zhangmingwei.iteye.com/blog/2090893