小伙伴们你们知道iOS开发里那个评分控件吗?就是让用户给你的产品或者服务打分那种哈。这个控件虽然得好看,但是好用才是硬道理!那今天咱就聊聊如何搞定这个评分控件,顺便分享几个小技巧和注意点给大家~
评分控件的重要性
评价功能就是帮大家在手机APP上挑到心仪物品的小助手~这样的评价既有趣又实用,让咱们用起手机来更爽!
选择合适的第三方库
找个好用的评级工具包,这样可以省很多劲儿!看它流畅不流畅,简单易用吗,扩展性怎么样呗。
XWStarView简介
XWStarView这个东西,就是个能帮你搞定iOS开发的好工具啦~虽然跟YYLabel有点像,但是还有自己独有的特点,就看你咋用了呗。
XWStarMaker的外观配置
用XWStarMaker设置打分控件的样式,比如距离啦、最大最小值啦、默认图和小图标什么的,超简单!
核心代码解析
这XWStarView,主要就看那.m文件就对了,那些都是控制面板的代码。懂YYLabel不?会的话,一学就上手
@interface XWStarMaker : NSObject @property (nonatomic, assign) CGFloat space; @property (nonatomic, strong) NSString *defaultImage; @property (nonatomic, strong) NSString *selectImage; @property (nonatomic,assign) NSInteger maxValue; @end
性能优化技巧
想要评分控件更流畅?秘诀就在这!少点无意义的重绘,多用用缓存就对了!
实际应用案例
咱们就拿个例子说说怎么用这个XWStarView来干活,它厉害在哪里?
用户反馈与持续改进
#import "YYLabel.h" #import "XWStarMaker.h" @class XWStarView; @protocol XWStarViewDelegate @optional -(void)xw_starView:(XWStarView*)tagView star:(NSInteger)star; @end @interface XWStarView : YYLabel @property (nonatomic, assign) NSInteger score; @property (nonatomic,weak) id delegate; -(instancetype)initWithFrame:(CGRect)frame maker:(void (^)(XWStarMaker *))makeBlock; @end
咱们得听一下大家对评分控件的看法这样才能让它更好用,让大家用得舒坦。这可是让我们软件保持竞争力的关键!
总结与展望
这次咱就来聊聊咋在iPhone上做个高效的评价工具,希望能对你有点启发哟~
提出问题
@interface XWStarView () @property (nonatomic,strong) XWStarMaker *maker; @end @implementation XWStarView -(instancetype)initWithFrame:(CGRect)frame maker:(void (^)(XWStarMaker *))makeBlock{ if (self = [super initWithFrame:frame]) { self.maker = [[XWStarMaker alloc] init]; if (makeBlock) { makeBlock(self.maker); } self.displaysAsynchronously = YES; self.fadeOnAsynchronouslyDisplay = NO; [self creatScoreAttr]; } return self; } #pragma mark - private -(void)creatScoreAttr{ NSMutableAttributedString *text = [NSMutableAttributedString new]; UIFont *font = [UIFont systemFontOfSize:0]; for (int i = 0; i只要你是个iOS程序员大概都看得懂代码吧。实现很简单,但是效果却不一般,特别在复杂列表使用的时候很明显。
XWStarView使用
_scoreView = [[XWStarView alloc] initWithFrame:CGRectMake(0, self.frame.size.height - 40, self.frame.size.width, 40) maker:^(XWStarMaker *maker){ maker.defaultImage = @"goods_score_empt.png"; maker.selectImage = @"goods_score_full.png"; maker.space = 10; }]; _scoreView.delegate = self;有人在做分数控制器出现性能问题吗?怎么办?快来分享你的应对之道,让我们共同进步!
评论0