php 五颗星评价,简单实现点触/输入值给五颗星评价

先上效果图

1685f588cbaf

gif.gif

1.码UI。。。

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 30)];

label.text = @"点击星星可以自动获取评分哦~";

label.textColor = [UIColor whiteColor];

label.textAlignment = NSTextAlignmentCenter;

[self.view addSubview:label];

label.center = CGPointMake(kScreenWidth / 2, 60);

self.colorStars = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"StarsForeground"]];

self.blankStars = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"StarsBackground"]];

// 宽高根据Image实际大小,如果放到了2倍图记得➗2

self.colorStars.frame = CGRectMake((kScreenWidth - 65) / 2, 100, 65, 23);

self.blankStars.frame = CGRectMake((kScreenWidth - 65) / 2, 100, 65, 23);

// 顺序不能错

[self.view addSubview:self.blankStars];

[self.view addSubview:self.colorStars];

// 关键

self.colorStars.clipsToBounds = YES;

self.colorStars.contentMode = UIViewContentModeLeft | UIViewContentModeTop;

self.tf = [[UITextField alloc] initWithFrame:CGRectMake((kScreenWidth - 300) / 2, 250, 300, 30)];

self.tf.borderStyle = UITextBorderStyleRoundedRect;

self.tf.backgroundColor = [UIColor lightGrayColor];

self.tf.textColor = [UIColor blueColor];

self.tf.backgroundColor = [UIColor whiteColor];

self.tf.placeholder = @"请输入1.0-5.0的评分等级";

self.tf.keyboardType = UIKeyboardTypeDecimalPad;

self.tf.textAlignment = NSTextAlignmentCenter;

[self.view addSubview:self.tf];

UIButton *Stars = [UIButton buttonWithType:UIButtonTypeCustom];

[Stars setTitle:@"评星" forState:UIControlStateNormal];

[Stars setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];

Stars.frame = CGRectMake((kScreenWidth - 50) / 2, 350, 50, 30);

[Stars addTarget:self action:@selector(starsBtnClick) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:Stars];

2.评星按钮的回调事件

- (void)starsBtnClick {

if ([self.tf.text floatValue] <= 0) {

NSLog(@"请输入评分");

[self alertMSG:@"请输入评分"];

} else if ([self.tf.text floatValue] > 5) {

NSLog(@"请按规则输入评分");

[self alertMSG:@"请按规则输入评分"];

} else {

CGFloat value = self.tf.text.floatValue;

CGFloat width = value/5.0*65;

CGPoint orgin = self.colorStars.frame.origin;

CGFloat height = self.colorStars.frame.size.height;

[UIView animateWithDuration:0.23 animations:^{

self.colorStars.frame = CGRectMake(orgin.x, orgin.y, width, height);

}];

}

}

3.点触评星的实现

// 点触评分的关键

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

[super touchesEnded:touches withEvent:event];

UITouch *touche = [touches anyObject];

CGPoint touchPoint = [touche locationInView:self.blankStars];

NSLog(@"%@", NSStringFromCGPoint(touchPoint));

// 如果点触在图片外,就不进行操作

if (touchPoint.x >= 0 && touchPoint.y >= 0 && touchPoint.x < self.blankStars.frame.size.width + 10 && touchPoint.y <= self.blankStars.frame.size.height) {

CGPoint orgin = self.colorStars.frame.origin;

CGFloat height = self.colorStars.frame.size.height;

CGFloat touchX = touchPoint.x;

if (touchPoint.x > self.blankStars.frame.size.width) {

touchX = self.blankStars.frame.size.width;

}

[UIView animateWithDuration:0.23 animations:^{

self.colorStars.frame = CGRectMake(orgin.x, orgin.y, touchX, height);

} completion:^(BOOL finished) {

self.tf.text = [NSString stringWithFormat:@"%.2lf", touchX / self.blankStars.frame.size.width * 5];

}];

}

[self.view endEditing:YES];

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552362.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle1461,Oracle 10.2.0.3的ORA-1461错误

Oracle 10.2.0.3的ORA-1461错误ORA-1461 encountered when generating server alert SMG-3500经研究发现&#xff0c;其是Oracle 10g的一个Bug&#xff0c;并且目前只有Oracle 10.2.0.3会遇到&#xff1a;造成这个错误的原因是由于SMON 进程正在 UPDATE SMON_SCN_TIME表时引发了…

linux uefi无法启动文件,解决UEFI安装无法启动的问题

前言我们产品是支持UEFI安装的&#xff0c;在很多款机器上都正常的安装。今日在浪潮服务器和技嘉服务器上都遇到一次&#xff0c;可以安装&#xff0c;但是无法正常启动。所以我们必须要解决此问题&#xff0c;来支持更多的硬件。基础知识EFI的全称是&#xff0c;Extensible Fi…

如何连接Linux上的服务器 网络编程,Linux 网络编程 一

一、网络编程基础网络编程本身是一门很大的学问&#xff0c;涉及到的东西也很多&#xff0c;尤其是各种协议。先看图&#xff1a;正如上图所示&#xff0c;网络编程中包含五大层面(也有区分六个层面)&#xff0c;从应用层到物理层可以明显看出 越往下越接近计算机硬件。自己并不…

电脑练习打字软件_Type Fu for Mac 4.5.7 共享版 – 优秀的键盘打字练习软件

下载地址&#xff1a;图片中有地址系统兼容性&#xff1a;OS X 10.10或更高版本&#xff0c;64位处理器Type Fu 教您如何在不看键盘的情况下加快打字速度&#xff0c;从而提高您的打字技巧。Type Fu 功能特点&#xff1a;通用。该应用程序适合所有年龄段和技能水平。您可以是初…

access如何保存小数点后_如何把示波器当记录仪用

波形记录仪能长时间的采集信号&#xff0c;并将数据保存到设备的硬盘中&#xff0c;采集的时间长度取决于采样率以及硬盘容量&#xff0c;但和示波器相比&#xff0c;它不具备实时分析的功能&#xff0c;而这正好是示波器的强项。示波器能在长时间采集波形的同时&#xff0c;对…

完全相同的4个小矩形如图所示放置_分享 | 你想知道的100个桥梁知识点!

1、组合梁桥composite beam bridge指以梁式桥跨作为基本结构的组合结构桥&#xff0c;既两种以上体系重叠后&#xff0c;整体结构的反力性质仍与以受弯作用负载的梁的特点相同。这类桥的特点主要表现在设计计算工作繁重&#xff0c;构造细节及内力复杂。2、空腹拱桥open spandr…

4am永远 鼠标按键设置_4AM碾压性夺冠创PCL历史!韦神赛后采访彰显霸气

《绝地求生》PCL秋季赛的战斗已经全部落下帷幕了&#xff0c;Team Razer 雷蛇战队成员&#xff0c;国内最具人气的4AM战队凭借着在季后赛的出色发挥&#xff0c;以316分的高分碾压全场&#xff0c;成功斩获本次PCL秋季赛的冠军&#xff0c;成为PCL联赛首个双冠队伍。随着金色的…

angular项目打包_vue项目部署的最佳实践

作者&#xff1a;沉末_https://juejin.im/post/5eb2243e51882555d8457833前 言 使用vue、react、angular等技术开发过程中&#xff0c;我们都会遇到以下问题&#xff1a;首屏加载慢&#xff1b;每一次更新都需要清除浏览器缓存才能看到效果(经常被测试吐槽)。这两个问题可以从很…

run as date怎么用_熟词僻义 | date是一种什么水果?

今天小站来和各位聊聊date这个熟词。说起date&#xff0c;这可是工作生活中一个极其常用的单词。无论是为下次工作会议定个日期&#xff0c;还是为即将举行的婚礼定个日子&#xff0c;都可以用“fix/set a date for sth”来表示。在沃尔玛等超市购物&#xff0c;经常可以看到食…

Macbook Pro 201 装Win10 声卡_苹果电脑真那么耐用吗?我拿五年前的Mac试了试-苹果,MacBook ——快科技(驱动之家旗下媒体)-...

平时对电脑关注比较多的小伙伴们应该知道&#xff0c;一直以来&#xff0c;同样硬件配置下的苹果电脑通常会比其它品牌的笔记本电脑要贵上不少。别问( 为什么 )&#xff0c;问就是它做工优秀、经久耐用。话虽然是这么说没错&#xff0c;但托尼仔细想想网上这个说法好像又有点问…

linux一个vlan配置多个端口映射,Linux 设置 多ip,多vlan

引:在Linux下有时候需要给一个网卡绑定多个IP&#xff0c;本文介绍在Redhat系列(redhat,Fedora Core,Centos)中的实现方法和一种在Gentoo等其他Linux中普遍适用的方法。在Linux下有时候需要给一个网卡绑定多个IP&#xff0c;本文介绍在Redhat系列(redhat,Fedora Core,Centos)中…

teamviewer一直验证账户_苹果手机下载软件一直需要验证

用过苹果手机的朋友可能都会遇到一种情况&#xff0c;那就是在App Store下载应用的时候&#xff0c;偶尔会弹出需要验证手机的窗口&#xff0c;但是我们按照系统要求给绑定的手机号发送了短信以后却没有任何反应了&#xff0c;遇到这种情况应该如何解决呢&#xff1f;接下来我就…

200 switching to ascii mode_【图片】15005377957 三轮车载式液压打井机XYC-200A 型深水井钻机游走乡【地勘吧】...

巨匠集团长期坚持以客户为基本&#xff0c;不断采纳客户所提出的意见和建议&#xff0c;不断更新自己的产品&#xff0c;让您用到质量过硬&#xff0c;操作简单的产品。巨匠集团&#xff0c;坚持做您身边的钻机帮手。一、XYC-200A三轮车载水井钻机适应范围地质普查勘探&#xf…

c++用一级运算比较大小_16.初中数学:怎么比较a、b、c、d的大小?幂的运算,基础常见考题...

欢迎您来到方老师数学课堂&#xff0c;请点击上方蓝色字体&#xff0c;关注方老师数学课堂。所有的视频内容&#xff0c;全部免费&#xff0c;请大家放心关注&#xff0c;放心订阅。初中数学&#xff1a;怎么比较a、b、c、d的大小&#xff1f;幂的运算&#xff0c;基础常见考题…

php 谷歌翻译api_武汉武昌区地质勘测翻译公司-译嘉合翻译

Angie就结合自己的经验来给大家谈谈如何构建自己的翻译领域吧&#xff0c;相信不管是刚入门急于寻找翻译赛道的新手&#xff0c;还是希望在原有基础上拓宽翻译领域、获得更多合作机会的译员都能带来帮助。地质勘测翻译公司" />鉴于你非英语或翻译专业&#xff0c;要直接…

建立a8 linux开发环境,Fedora 14下建立 omap3530 开发环境 - 交叉编译器

主机升级到Fedora 14&#xff0c;下载了crosstool-ng-1.10.0&#xff0c;编译目标为 arm-cortex_a8编译步骤&#xff1a;1、直接拷贝 crosstool-ng-1.10.0/samples/arm-cortex_a8-linux-gnueabi/crosstool.config 到目标目录中的 .config2、执行 ct-ng menuconfig 查看和校验编…

arm b bl 地址无关码_32位和64位下的arm_pwn初探

32位和64位下的arm_pwn初探前言&#xff1a;pwn的学习之路一直在进行&#xff0c;今天看了arm_pwn&#xff0c;搞环境就搞了半天&#xff0c;琢磨工具使用到做题&#xff0c;这里总结下&#xff0c;希望能帮助到大家&#xff0c;少走一点弯路&#xff0c;后期有机会继续更新。一…

如何用unit test测试controller_如何用电缆故障测试仪冲闪测试确定故障点?

原标题&#xff1a;如何用电缆故障测试仪冲闪测试确定故障点&#xff1f;当我们中试控股在使用电缆故障测试仪检测电缆故障时&#xff0c;遇到故障点二次击穿放电时&#xff0c;其波形要如何分析&#xff1f;首先我们要知道仪器在遇到故障点二次击穿时的表现是怎样的。显示故障…

linux下qt环境的运行,在Linux下使用QT环境来安装和运行WebKit

Installing and Running WebKit in Linux Using QtI’mcoming to appreciate more and more all of the hard work softwaredevelopers perform. I wouldn’t consider myself an open source elitist,but there’s something special about the associated ideologies. When a…

button 样式_缩减 SCSS 50%样式代码的 14 条实战经验

原标题&#xff1a;缩减 SCSS 50%样式代码的 14 条实战经验作者&#xff1a;feishi123前言Sass是CSS3语言的扩展&#xff0c;它能帮你更省事地写出更好的样式表&#xff0c;使你摆脱重复劳动&#xff0c;使工作更有创造性。因为你能更快地拥抱变化&#xff0c;你也将敢于在设计…