星星评分

星星评分

  • 我们很多时候 为了 UI界面的 简便 美观 ,时常用到 星级评分

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];

效果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天为大家带来一个iOS星级评分控件的实现,欢迎拍砖。 在github上搜索iOS星级评分控件,可以看到TQSta...
    wMellon阅读 6,362评论 0 4
  • 在很多电商,外卖,餐饮型应用里,都会在商品结束后评价中有一个星星组件。核心思路就是用UIControl并自定义实现...
    Nemocdz阅读 9,394评论 12 50
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,955评论 25 709
  • 工作日志之星级评分 今天主要完成了几件事情: 完成了博客标签的生成与链接,并且通过js实现了标签与文章使用同一个模...
    爱做梦的鱼阅读 3,994评论 0 0
  • 爱不仅仅是一种良好的意愿,同时也是能力和行动。并不是两个人互相相爱,就能让对方开心,就能相处得很,就能长久在一起。...
    alabiubiubiu阅读 1,450评论 0 2

友情链接更多精彩内容