0

Apple がアプリの詳細を表示するために使用する tableView を再作成しようとしています。

ここに画像の説明を入力

ボタン内の影を除いて、実装は正常に完了しました。詳細ボタンの境界に微妙な影の効果があることに注目してください。

ボタン自体を描画するために使用するコードは次のとおりです。

if(self.isSelected) {

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, COLORWITHRGB(204, 204, 204).CGColor);
    CGContextSetStrokeColorWithColor(context, COLORWITHRGB(141, 141, 141).CGColor);


    CGSize labelTextSize = [self.titleLabel.text sizeWithFont: self.titleLabel.font];
    CGRect labelFrame = CGRectMake(rect.size.width - labelTextSize.width - 24, (rect.size.height - labelTextSize.height - 4) / 2, labelTextSize.width + 14, labelTextSize.height + 4);


    CGMutablePathRef path = CGPathCreateMutable();
    CGPathAddArc(path, NULL, labelFrame.origin.x + labelFrame.size.width - labelFrame.size.height / 2, labelFrame.origin.y + labelFrame.size.height / 2, labelFrame.size.height / 2, M_PI / 2, M_PI * 3 / 2, YES);
    CGPathAddArc(path, NULL, labelFrame.origin.x + labelFrame.size.height / 2, labelFrame.origin.y + labelFrame.size.height / 2, labelFrame.size.height / 2, M_PI * 3 / 2, M_PI / 2, YES);
    CGPathAddLineToPoint(path, NULL, labelFrame.origin.x + labelFrame.size.width - labelFrame.size.height / 2, CGRectGetMaxY(labelFrame));

    CGContextAddPath(context, path);
    CGContextDrawPath(context, kCGPathFillStroke);

    CFRelease(path);
}

これまでの様子は次のとおりです。

ここに画像の説明を入力

見た目は悪くありませんが、私が探しているものをやめたわけではありません。

誰か提案はありますか?

4

1 に答える 1

1

インナーシャドウを入れたい。

このアプリを試してみてください http://www.paintcodeapp.com ... コードを書いてくれるのでとても便利です。

于 2013-05-29T14:00:54.477 に答える