Xamarin iOS 让图片动起来,做一个简单的俄罗斯轮盘
2015-10-27 15:35
597 查看
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/
转载自:昕力大学
相关文章推荐
- iOS9问题汇总
- iOS bundle id的作用
- iOS 即时通讯 Socket使用学习笔记
- ios开发常用到的第三方库
- IOS 获取指定月的第一天和最后一天
- IOS 广播——跳转后返回执行方法
- ios推送消息的基本原理
- iOS_开发_工具_Terminal命令
- 如何进行iOS 性能测试
- 如何进行iOS性能测试-------Instruments 使用教程
- iOS 中extern、static修饰变量的使用及define和const区别
- iOS设置处理异常的方法
- IOS中定时器NSTimer的开启与关闭
- 利用AVFoundation实现录音和播放
- iOS设置NSString的枚举
- IOS数据刷新(上拉刷新和下拉刷新)
- iOS使用自定义字体
- iOS 精益编程
- iOS 添加好友请求要怎么注册监听
- iOS开发火爆的背后