OC下的自定义Button

用OC实现自定义按钮的图片和文字布局

实现按钮中的文字和图片自定义布局的方法很简单,只要在按钮添加到父视图之前获取到文字和图片属性,修改其frame就行,这里介绍一种设置的方法

- (instancetype)initWithFrame:(CGRect)frame{

     self = [super initWithFrame:frame];

    if (self) {

    self.backgroundColor = [UIColor whiteColor];

    self.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;

    [self setTintColor:[UIColor blackColor]];

  }

  return self;

}

//重写该方法可以改变图片显示的位置
//2018年06月22日 更正一下实现方法,在获取到图片时再进行布局
- (CGRect)imageRectForContentRect:(CGRect)contentRect{

    if (self.currentImage) {
        contentRect.size.width = self.currentImage.size.width;
        contentRect.size.height = self.currentImage.size.height;
        contentRect.origin.x = (self.bounds.size.width - contentRect.size.width)/2;
        contentRect.origin.y = 0;
    }
    return contentRect;

  }

//重写该方法可以改变文字显示的位置

- (CGRect)titleRectForContentRect:(CGRect)contentRect{

     contentRect.size.height *= 0.10;

    contentRect.origin.y = (self.bounds.size.height * 0.7);;

    return contentRect;

  }

//屏蔽自灰效果
- (void)setHighlighted:(BOOL)highlighted{
}

你可能感兴趣的:(OC下的自定义Button)