Baby小破孩

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在游戏的开发中,一般要用到显示道具或者是筹码的价格,为了显示优惠幅度和吸引玩家付费,一般会强调原价与现价的优惠幅度,原价上面画上一条删除线。下面是在iOS开发时用到的代码,可以作为参考实现。

===========================================================================

下面是UILabelStrikeThrough.h文件

/*
 *  用于在UILabel上画删除线
 */
#import<Foundation/Foundation.h>


@interface UILabelStrikeThrough :UILabel
{
    BOOL isWithStrikeThrough;
}


@property (nonatomic,assign) BOOL isWithStrikeThrough;
@end
===========================================================================

下面是UILabelStrikeThrough.m文件


#import"UILabelStrikeThrough.h"


@implementation UILabelStrikeThrough


@synthesize isWithStrikeThrough;


- (void)drawRect:(CGRect)rect
{
   if (isWithStrikeThrough)
    {
       CGContextRef c = UIGraphicsGetCurrentContext();
        
       CGFloat red[4] = {1.0f,0.0f, 0.0f,0.8f}; //红色
       //CGFloat black[4] = {0.0f, 0.0f, 0.0f, 0.5f};//黑色
       CGContextSetStrokeColor(c, red);
       CGContextSetLineWidth(c, 2);
       CGContextBeginPath(c);
       //画直线
       //CGFloat halfWayUp = rect.size.height/2 + rect.origin.y;
       //CGContextMoveToPoint(c, rect.origin.x, halfWayUp );//开始点
       //CGContextAddLineToPoint(c, rect.origin.x + rect.size.width, halfWayUp);//结束点
       //画斜线
       CGContextMoveToPoint(c, rect.origin.x, rect.origin.y+5 );
       CGContextAddLineToPoint(c, (rect.origin.x + rect.size.width)*0.5, rect.origin.y+rect.size.height-5); //斜线
       CGContextStrokePath(c);
    }
    
    [superdrawRect:rect];
}


- (void)dealloc
{
    [superdealloc];
}


@end
调用代码:



    UILabelStrikeThrough *originalPrice=[[[UILabelStrikeThroughalloc] initWithFrame:CGRectMake(coinPic.frame.origin.x+coinPic.frame.size.width+5,0, 120,15)]autorelease];
    originalPrice.isWithStrikeThrough=TRUE;

 

posted on 2013-05-30 11:56  Baby小破孩  阅读(254)  评论(0编辑  收藏  举报