按钮中的阴影和轮廓

时间:2015-11-17 19:11:19

标签: ios objective-c uibutton

我想在我的按钮上放一个阴影,但是当我在标题中放置一个轮廓时,轮廓有一个阴影,我想只在文本中添加阴影。

这是我在我的按钮中使用的代码:

mat2 <- sapply(split(1:ncol(mat), rep(seq_along(counts), counts)), 
           function(i) rowSums(mat[,i,drop=FALSE]))
dimnames(mat2) <- NULL
mat2
#     [,1] [,2] [,3]
#[1,]    6    9   30
#[2,]    8   10   32
#[3,]   10   11   34
#[4,]   12   12   36

所以我想显示按钮的标题: Title of button

2 个答案:

答案 0 :(得分:0)

我认为最简单的方法就是将文本的两个实例叠加在一起。底部没有轮廓,但是投下你想要的窄影。顶部的那个有轮廓而没有阴影。

答案 1 :(得分:0)

我找到了这个问题的解决方案,我使用了下一个代码:

-(void)drawRect:(CGRect)rect {
    [super drawRect:rect];
    CGRect rectt = self.titleLabel.frame;
    rect = rectt;
    rectt.origin.y += self.offset.height;
    rectt.origin.x += self.offset.width;

    UIColor *borderColor = [self.outlineColor copy];
    UIColor *fillColor = self.titleLabel.textColor;
    CGContextRef context = UIGraphicsGetCurrentContext();

    if (self.drawShadow) {
        CGContextSetLineWidth(context, 0.0f);
        CGContextSetTextDrawingMode(context, kCGTextFillStroke);
        [self setTitleColor:self.shadow forState:UIControlStateNormal];
        [self.titleLabel drawTextInRect:rectt];
    }

    if (self.drawOutline) {
        CGContextSetLineWidth(context, self.outlineWidth);
        CGContextSetTextDrawingMode(context, kCGTextStroke);
        [self setTitleColor:borderColor forState:UIControlStateNormal];
        [self.titleLabel drawTextInRect:self.titleLabel.frame];
    }

    CGContextSetLineWidth(context, 0.0f);
    CGContextSetTextDrawingMode(context, kCGTextFillStroke);
    [self setTitleColor:fillColor forState:UIControlStateNormal];

    [self.titleLabel drawTextInRect:self.titleLabel.frame];
}

我的班级继承了UIButton