ale*_*ffi 1 objective-c effect uibutton ios
我有一个UIButton,当我点击它,下降给一个效果click/tap.

我的问题是,我必须添加一个black border围绕UIButton,但增加这保持边界的静态,它不向下移动与UIButton,这让我有点击效果的代码UIButton是这样的:
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
CGSize size = self.bounds.size;
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect faceRect = CGRectMake(0, 0, size.width, size.height);
UIGraphicsBeginImageContextWithOptions(faceRect.size, NO, 0.0);
[[self faceColorForState:self.state] set];
[self drawRoundedRect:faceRect radius:self.radius context:UIGraphicsGetCurrentContext()];
UIImage *faceImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[self sideColorForState:self.state] set];
CGRect sideRect = CGRectMake(0, size.height * 1.0 / 4.0, size.width, size.height * 3.0 / 4.0);
[self drawRoundedRect:sideRect radius:self.radius context:context];
CGRect faceShrinkedRect;
if(self.state == UIControlStateSelected || self.state == UIControlStateHighlighted) {
faceShrinkedRect = CGRectMake(0, self.depth, size.width, size.height - self.margin);
} else {
faceShrinkedRect = CGRectMake(0, 0, size.width, size.height - self.margin);
}
[faceImage drawInRect:faceShrinkedRect];
}
Run Code Online (Sandbox Code Playgroud)
你使用过于复杂的事情drawRect:.最简单的方法是为按钮背景创建2个图像,其中一个图像带有黑色边框.然后使用:
[myButton setBackgroundImage:[UIImage imageNamed:<up-image>] forState:UIControlStateNormal];
[myButton setBackgroundImage:[UIImage imageNamed:<down-image>] forState:UIControlStateHighlighted];
Run Code Online (Sandbox Code Playgroud)
如有必要,您可以重复使用代码在代码中创建图像.也许是一种类别方法UIImage:
+(UIImage *)buttonBackgroundImageWithColor:(UIColor *) color highlighted: (BOOL) highlighted
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2124 次 |
| 最近记录: |