Xamarin iOS 让图片动起来,做一个简单的俄罗斯轮盘
1. 前言
让图片不止是图片,让图片动起来。透过图片的animation以及随机数来完成一个简易版的轮盘游戏。
2. 目的
藉由这个APP的实作过程,练习使用animation及随机数。
3. 开始前准备
开发工具:Xamarin studio / Visual Studio
测试环境:iOS手机 / XCode
4. 本文
首先开启一个Xamarin iOSSingle View App项目。
添加一张手指的图片及一张轮盘的图片到项目路径下
在页面加入一个按钮并添加action event如下图
编辑ViewController
初始化物件
CALayer layer; //是否为初次执行,初次执行起始值为0 bool init = false; //记住前次结果值 float lastFloat = 0f;
加载轮盘图片及手指图片
//轮盘图片 layer = new CALayer (); layer.Bounds = new CGRect (0, 0, 300, 300); layer.Position = new CGPoint (190, 340); layer.Contents = UIImage.FromFile ("wheel.png").CGImage; layer.ContentsGravity = CALayer.GravityResizeAspectFill; View.Layer.AddSublayer (layer); //指针图片 var imageView = new UIImageView (UIImage.FromBundle("hand_pointer_down.png")); imageView.Frame = new CoreGraphics.CGRect ( 40, 0, imageView.Image.CGImage.Width, imageView.Image.CGImage.Height ); View.Add (imageView);
编辑按钮动作
//定义随机数值 double dou = new Random().NextDouble(); //轮盘旋转圈数 float round = 200f; //起始值初始化 float v1 = 0f; //结果值初始化, float v2 = (float)Math.PI * round * Convert.ToSingle(dou); //如果已执行过,下次旋转的初始值为此次执行结果值 if(init == true){ v1 = lastFloat; }//Creates basic moving animation//定义animation动作 var basicAnimation = CABasicAnimation.FromKeyPath ("transform.rotation"); basicAnimation.TimingFunction = CAMediaTimingFunction.FromName (CAMediaTimingFunction.EaseInEaseOut); //定义轮盘初始值 basicAnimation.From = NSNumber.FromFloat (v1); //定义轮盘结果值 basicAnimation.To = NSNumber.FromFloat (v2); //animation运行时间,数字越大动作越慢 basicAnimation.Duration = 2; init = true; lastFloat = v2;//锁定结束位置 layer.Transform = CATransform3D.MakeRotation (lastFloat, 0, 0, 1); layer.AddAnimation(basicAnimation, "transform.rotation");
执行结果
5. 参考来源
Create a Keyframe Animationhttps://developer.xamarin.com/recipes/ios/animation/coreanimation/create_a_keyframe_animation/
转载自:昕力大学
Xamarin iOS 让图片动起来,做一个简单的俄罗斯轮盘相关推荐
- 【微信小程序控制硬件⑦ 进阶篇】动起来做一个微信小程序Mqtt协议控制智能硬件的框架,为心里全栈工程师梦想浇水。
文章目录 一.前言: 二.涉及的技术点: 三.框架的运行原理: 四.框架代码流程: 4.1 主线程: 4.2 获取设备列表显示设备,以及订阅在线的设备: 4.3 点击某设备如何实现携带此设备信息到控制 ...
- 第四章 .net core做一个简单的登录
项目目标部署环境:CentOS 7+ 项目技术点:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx 开源地址:https ...
- extjs 在textfield后面加一个button_用python 做一个简单的MP3
本节将教大家如何做一个简单的mp3,希望大家能有所收获,写的不足之处望大家谅解. 废话少说,直接上代码: #!/usr/bin/env python # -*- coding: utf-8 -*- i ...
- 使用环信sdk做一个简单的聊天APP
使用环信sdk做一个简单的即时聊天APP,实现简单的通讯 感悟 在很早以前就想做一个简单的即时聊天app.可能自己对即时聊天的三方SDK了解的不是特别深,在进行了一段时间的学习以后感觉自己的能力达到了 ...
- 蚂蚁研究员玉伯:做一个简单自由有爱的技术人
玉伯 蚂蚁研究员 读完需要 10 分钟 速读仅需 1 分钟 玉伯,蚂蚁研究员,体验技术部负责人.2008 年加入淘宝,2012 年开始在支付宝致力于设计语言 Ant Design.数据可视化 AntV ...
- 玉伯:做一个简单自由有爱的技术人
简介: 前端工程师如何成长?如何管理前端团队?如何打造团队文化?近日,蚂蚁研究员兼体验技术部负责人玉伯,在蚂蚁内部技术人的成长公开课上,分享了他的人生愿景和心路历程. 作者 | 玉伯 前端工程师如何成 ...
- 做一个简单网页(做一个简单网页多少钱)
怎样做一个简易的网页?做一个简单网页多少钱 做一个简易的普通网页比较容易.当然,制作的方法有好几种,有的是直接写代码.有的是用绘图软件绘制页面再导出网页.常用的是使用网页制作软件做网页.下面以普通静态 ...
- 用python做一个简单GUI小软件
用python做一个简单软件 前言 这是一个课设,用python做一个扫描王软件 我主要做的GUI部分,记录分享一下.也是第一次用python做小软件,python的方便果然是名不虚传 遇到问题 1. ...
- Python【小游戏合集】之自己做一个简单又好玩的推箱子小游戏
导语:哈喽铁汁们~今日游戏之旅开始! 想领取完整源码跟python学习资料可私信我或点击这行字体 这期就是带大家使用当前主流且易用的Python语言做一个简单的推箱子小游戏 现在小编的快乐源泉就是玩自 ...
最新文章
- html中连续点击某个标签会出现蓝色的解决方法
- IDC发布制造业预测,AI风险决策因何上榜?
- windows下redis安装,注册成系统服务
- 安卓linux交叉编译,Linux Ubuntu下用Android NDK 生成独立交叉编译链
- [蓝桥杯2015初赛]生命之树-求树的最大子树权值和
- 辨异 —— Java 中的抽象类和接口
- ASP.NET DEMO Ⅳ : 使用数据源控件将数据绑定到 ListControl 上
- 网络工程师HCIE-RS-路由回馈问题(通俗易懂!)
- ASP Blob类型转存为Long Raw类型
- php复制按钮,【typecho】typecho优化之代码框添加复制按钮
- VMware15.5.2安装unlocker时下载工具一直失败
- html滑动验证图片,滑动验证 和滑动图片验证JS
- lfw分类 python_Python机器学习:PCA与梯度上升:009人脸识别与特征脸(lfw_people数据集)...
- 第二讲:高性能计算关键技术和趋势分析
- JavaScript阿拉伯数字“1“转中文数“一“
- 电子计算机第一台视频,1946年2月14日世界上第一台计算机诞生
- 数组扁平化——flat方法理解
- yys opencv自动图片识别 学习交流
- java导出txt文件列对齐
- 雷军为什么要挖常程?