iOS外卖星级显示

来源:互联网 发布:windows设置触摸板 编辑:程序博客网 时间:2024/06/11 22:05
////  ViewController.m//  外卖星级显示////  Copyright © 2016年 LongChuang. All rights reserved.//#import "ViewController.h"#import "LCLevelView.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    LCLevelView *level = [[LCLevelView alloc]init];    // 设置位置要在给属性赋值之前,因为属性赋值的set方法里使用了level的frame    level.frame = CGRectMake(20, 20, 60, 24);    level.level = 3.5;    [self.view addSubview:level];}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end
////  LCLevelView.h//  外卖星级显示////  Copyright © 2016年 LongChuang. All rights reserved.//#import <UIKit/UIKit.h>/** *  应根据得到的数据自动生成不同图案的星星图片 */@interface LCLevelView : UIView// 对外预留接口,根据传入的数据,通过属性的set方法,自动识别该生成何种星星@property(nonatomic,assign)CGFloat level;@end
////  LCLevelView.m//  外卖星级显示////  Copyright © 2016年 LongChuang. All rights reserved.//#import "LCLevelView.h"@implementation LCLevelView-(void)setLevel:(CGFloat)level{    // 强转获取整数部分    NSInteger grade = (NSInteger)level;    // 根据整数部分生成全星图片    for (NSInteger i = 0; i < grade; i++) {        [self createStartImage:@"full_star" position:i];    }    // 判断是否需要生成半颗星图片    if (level - grade) {        [self createStartImage:@"half_star" position:grade++];    }    // 生成空的星星    for (NSInteger i = grade; i < 5; i++) {        [self createStartImage:@"empty_star" position:i];    }}-(void)createStartImage:(NSString *)imageName position:(NSInteger)position{    UIImageView *imageview = nil;    // 当星级评分发生变化时,无需重新创建,直接更改原来5张的图片名称即可,修改名称放到判断条件外    if (self.subviews.count == 5) {        imageview = self.subviews[position];    }else    {        // 设置坐标        imageview = [[UIImageView alloc]init];        CGRect startFrame = CGRectMake(0, 0, self.bounds.size.height, self.bounds.size.height);        imageview.frame = CGRectOffset(startFrame, position * self.bounds.size.height, 0);        // 创建出的图片空间添加到自定义UIView        [self addSubview:imageview];    }    // 无论是第几次创建,都需要更换图片    imageview.image = [UIImage imageNamed:imageName];}@end
0 0
原创粉丝点击