我需要创建一个带有2个以上边框的按钮,如下图所示。 任何人都可以指出这样做的方向,而不会再出现图像吗?
谢谢。
答案 0 :(得分:1)
添加阴影和边框很简单。
1)将QuartzCore框架添加到目标。
2)在要添加边框和阴影的类中导入框架标题。 (或者如果你有按钮的自定义类,那么你可以在该类中简单地导入这个框架。)
3)要向按钮添加边框,请使用此代码(其中按钮是与界面中的按钮连接的IBOutlet):
[self.button.layer setBorderWidth:3.0];
[self.button.layer setBorderColor:[[UIColor blackColor] CGColor]];
4)要将阴影添加到按钮,请使用以下代码:
[self.button.layer setShadowOffset:CGSizeMake(5, 5)];
[self.button.layer setShadowColor:[[UIColor blackColor] CGColor]];
[self.button.layer setShadowOpacity:0.5];
答案 1 :(得分:1)
其他选项:
答案 2 :(得分:0)
@joao,
以下是您可以根据需要进一步调整代码的核心代码,
#import <UIKit/UIKit.h>
@interface OD : UIButton
@end
#import "OD.h"
@implementation OD
-(void)drawRect:(CGRect)rect
{
// self.layer.borderColor = [UIColor blackColor].CGColor;
UIBezierPath *aPath = [UIBezierPath bezierPath];
[aPath moveToPoint:CGPointMake(2, 2)];
// Draw the lines.
[aPath addLineToPoint:CGPointMake(rect.size.width -4, 2)];
[aPath addLineToPoint:CGPointMake(rect.size.width -4,rect.size.height-4 )];
[aPath addLineToPoint:CGPointMake(2, rect.size.height-4)];
[aPath addLineToPoint:CGPointMake(0, 0)];
[[UIColor greenColor] setStroke];
// [[UIColor redColor] setFill];
aPath.lineWidth = 5;
[aPath fill];
[aPath stroke];
[aPath closePath];
UIBezierPath *bPath = [UIBezierPath bezierPath];
[bPath moveToPoint:CGPointMake(8, 8)];
// Draw the lines.
[bPath addLineToPoint:CGPointMake(rect.size.width -8, 6)];
[bPath addLineToPoint:CGPointMake(rect.size.width -8,rect.size.height-8 )];
[bPath addLineToPoint:CGPointMake(8, rect.size.height-8)];
[bPath addLineToPoint:CGPointMake(8, 8)];
[[UIColor redColor] setStroke];
// [[UIColor redColor] setFill];
bPath.lineWidth = 5;
[bPath fill];
[bPath stroke];
[bPath closePath];
self.layer.borderWidth = 2;
// self.layer.
}
@end