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,一经查实,立即删除!

相关文章

PHP服务器端语言是什么意思,PHP作为服务器端语言,有哪些优点?

php语言作为一门强健的服务器端语言&#xff0c;汇集多种语言优点于一身&#xff0c;为web落地页提供快速便捷的服务&#xff0c;亿速云为您详细解答php语言的相关优点。1、本地化使用其他语言编写的网站在访问者进入网站时&#xff0c;会通过语言翻译程序分析访问者的母语&…

switch语句php,PHPswitch 语句 - PHP教程

PHP switch 语句有时&#xff0c;为了避免 if 语句过于冗长&#xff0c;提高程序的可读性&#xff0c;可以使用 switch 分支控制语句。switch 语句用于根据多个不同条件执行不同动作。如果您希望有选择地执行若干代码块之一&#xff0c;请使用 switch 语句。语法switch (n){cas…

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表时引发了…

oracle数据库表空间如何清理,oracle数据库清理临时表空间

方法一、重启库   库重启时&#xff0c;Smon进程会完成临时段释放,TEMP表空间的清理操作&#xff0c;不过很多的时侯我们的库是不允许down的,所以这种方法缺少了一点的应用机会&#xff0c;不过这种方法还是很好用的。   法二、Metalink给出的一个方法   修改一下TEMP表空…

matlab cam orbit,Matlab的绘图函数

在Matlab的命令窗口中键入doc graph2d/graph3d/specgraph 可以获得详细的帮助graph2dTwo dimensional graphs.Elementary X-Y graphs.plot - Linear plot.loglog - Log-log scale plot.semilogx - Semi-log scale plot.semilogy - Semi-log scale plot.polar - Polar coordinat…

oracle数据库编程实验2答案,Oracle数据库-作业2-答案

第二次书面作业答案(作业在2013.5.15之前交,使用学院统一的作业封面&#xff0c;题目可以打印&#xff0c;答题内容必须手写)一、填空题1&#xff0e;PL/SQL程序块主要包括3个主要部分&#xff1a;声明部分、执行部分和理 部分。2&#xff0e;使用显式游标主要包括4个步骤&…

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;对…

linux echo 输入密码,如何在Qt中运行Linux命令时自动输入密码

之前有在Qt中运行Linux命令并且获取命令行返回值的需求&#xff0c;所以研究了一下方法由于需要获取返回的内容&#xff0c;所以用的是 QProcess::start()&#xff0c;然后用readAll()获取返回值&#xff0c;这个网上很多用法但是运行某些命令时因为权限原因需要输入密码&#…

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

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

linux bc命令全称,Linux bc 命令

Linux bc 命令bc 命令是任意精度计算器语言&#xff0c;通常在linux下当计算器用。它类似基本的计算器, 使用这个计算器可以做基本的数学运算。常用的运算&#xff1a; 加法- 减法* 乘法/ 除法^ 指数% 余数语法bc(选项)(参数)选项值-i&#xff1a;强制进入交互式模式&#xff1…

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

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

linux 敏感标记 权限,闲话Linux系统安全(二)——强制访问控制(MAC)

安全秘笈第二式——不安全的特殊权限和强制访问控制(MAC)在DAC的机制中&#xff0c;不管是所有权加权限的管理办法&#xff0c;还是文件系统访问控制列表(facl)&#xff0c;都是非常强大的访问控制机制&#xff0c;均可以对文件资源进行比较有效的访问控制。但DAC的自主性太强&…

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;经常可以看到食…

linux+kill+进程和线程,在LINUX系统中 关于进程和线程终止的问题

#include#includepthread_t thread;void *fun(void *arg){printf("hell0n");pthread_exit((void * 1));}int main(void){pthread_create(&thread,NULL,fun,NULL);sleep(1);return 127;}在UNIX环境高级编程中说 进程的最后一个线程在启动例程中 执行返回语句&…

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)中…