iOS开发iOS 开发 寒哥管理的技术专题

星星评分

2016-02-21  本文已影响324人  随梦而飞飞

星星评分

1.实现思路

 主要通过两张  一张图片来遮盖的第二章图片 来实现

2.代码实现

.h 文件

#import <UIKit/UIKit.h>

@interface StarView : UIView
{
 //背景图
 UIImageView *backgroundImageView;
 //前景图
 UIImageView *foregroundImageView;
}
//设置星级
-(void)setStar:(CGFloat)star;
@end

.m文件实现

#import "StarView.h"
@implementation StarView
-(void)createImage
{
    backgroundImageView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"StarsBackground"]];//白色
    backgroundImageView.frame=CGRectMake(0, 0, 65, 23);
    backgroundImageView.contentMode=UIViewContentModeLeft;
    
    foregroundImageView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"StarsForeground"]];//橘红色
    foregroundImageView.frame=CGRectMake(0, 0, 65, 23);
    //设置内容的对齐方式
    foregroundImageView.contentMode=UIViewContentModeLeft;
    //如果子视图超出父视图大小时被裁剪掉
    foregroundImageView.clipsToBounds=YES;
    [self addSubview:backgroundImageView];
    [self addSubview:foregroundImageView];
    self.backgroundColor=[UIColor clearColor];
}

//给用xib创建这个类对象时用的方法
-(id)initWithCoder:(NSCoder *)aDecoder
{
    if (self=[super initWithCoder:aDecoder]) {
        [self createImage];
    }
    return self;
}

//设置星级
-(void)setStar:(float)star
{
    CGRect frame=backgroundImageView.frame;
    
    frame.size.width = frame.size.width * (star / 5);
    
    foregroundImageView.frame=frame;
}

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self createImage];
    }
    return self;
}
@end

3.使用方法

 StarView * star=[[StarView alloc] init];
//设置三颗星 
 [star setStar:3.0f];

效果

上一篇下一篇

猜你喜欢

热点阅读