IOS学习02简单动画

IOS学习第二天,今天做一个简单的动画的小程序!

程序截图如下:

1 这个程序,当点击屏幕左下方4个方向按键的时候,上面的图片就会跟着自动上下左右移动。

2 当点击屏幕右边变大和变小按键时候,上面的图片就会跟着变大和变小。

二 功能就说到这里,下面开始界面和代码说明。

2.1 首先还是先创建项目和设计界面,当然还要把相对应的图片导入项目images.xcassets下。截图如下:

2.2 界面图片和方向键,在这里我都是用Button做的,当然,用别的也可以。

2.3 界面上所以可以点击的按键,我都做了高亮显示,这个就要修改按键的State Config=Highlighted;然后在这里再设置变成高就显示的背景图片,同时还要设置属性Type=Custom,这样当你点击按键的时候才会有高亮显示。设置属性如下图:

2.4 这个截图左边界面上我点到了右按键,然后右边是对应的属性,这个截图可以清楚的看到,对应属性的设置,所有的按键设置都同样。

2.5 在这里我们还要设置下4个方向键的tag属性时,其实这个就相当给每个按键设置一个唯一的ID,在asp.net中,每个控件都会自动生成一个唯一的ID。

但IOS中不会自动生成,所以要自己在属性中设置,这样方便我们在后台代码中,可以只写一个事件方法来控制4个Button按键,如下图:

2.6 这样在后台代码中我们就可以通过Tag的值来判断是点击的哪个按键值,来做处理了。

2.7 界面设计完成后,下面开始写后台代码了,代码如下:

//
//  ViewController.m
//  动画-1
//
//  Created by 徐周 on 15-5-27.
//  Copyright (c) 2015年 ___FULLUSERNAME___. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()
//定义一个点击事件,这个事件同事连线界面上4个上下左右按键
//就是说界面上4个方向键的点击事件都用这一个方法来实现
-(IBAction)top:(UIButton *)btn;

//定义变大事件,关连变大按键
-(IBAction)big;

//定义变小事件,关连变小按键
-(IBAction)small;

//定义图片属性,做来控制图片属性
@property(weak,nonatomic) IBOutlet UIButton *head;
@end

@implementation ViewController

//方向点击事件,传入当前点击按键的UIButton的值,来判断点击的是哪个方向键。
-(IBAction)top:(UIButton *)btn
{
    //找到界面上图片的frame,因为frame属性是不能直接设置的
    //只能先赋值给CGRect来保存

    CGRect tempFrame=self.head.frame;

    //设置图片要移动的距离,这里设置成10,就是每点一次方向键,变化10个点
    int btns=10;
    // 判断当前点击的按键的tag的值就可以知道当前点击的是哪个方向键
    //10上,20左,30右,40,下
    //tempFrame.origin.y,这里就是指的当前图片Y坐标,国为在IOS中界面就是用Y和X来指名坐标的。
    //这样我们找到了当前图片Y和X坐标后就好办了,我们设置Y坐标-10,那么图片就会向界面的上面移动10点了
    //同理,上下左右都一样了。
    switch (btn.tag) {
        case 10:
            tempFrame.origin.y-=btns;
            break;
        case 20:
            tempFrame.origin.x-=btns;
            break;
        case 30:
            tempFrame.origin.x+=btns;
            break;
        case 40:
            tempFrame.origin.y+=btns;
        default:
            break;
    }
    // 设置完了图片的坐标后,我们再把CGRect的变量empFrame赋值给图片。这样,图片在界面的位置变了。
    self.head.frame=tempFrame;
}
//变大按键
-(IBAction)big
{
    //和上面同理,只能先赋值给CGRect来保存
    CGRect temFrame=self.head.frame;

    //因为这里是变大,所以变是设置size.width和size.height属性了,
    //我想做开发都应该知道这两个属性的作用
    temFrame.size.width+=20;
    temFrame.size.height+=20;
    //同时我们还要设置下图片的坐标,因为如果Y和X坐标不变动,程序运动起来就会一直向下和右变大
    //这是因为我们图片的Y和X坐标一直没有动过,所以图片只能向下和右变动,所以为了看起来好像,要同时设置下,当前属性的Y和X坐标
    temFrame.origin.x-=10;
    temFrame.origin.y-=10;
    self.head.frame=temFrame;
}
//变小按键,代码同上,不用说明了
-(IBAction)small
{
    CGRect temFrome=self.head.frame;

    temFrome.size.width-=20;
    temFrome.size.height-=20;
    temFrome.origin.x+=10;
    temFrome.origin.y+=10;

    self.head.frame=temFrome;
}
@end

三 当这些都做完之后,运行程序,然后上下左右都可以移动,点击放大和放小按键可以变大和变小。

但有个问题就是变大和变小按键只能变化一次,就没反映了。这个其实跟代码没有关系,这个是因为IOS自带一个属性Use Auto Layout来控制不让界面的控件属性Widtht和heigth自动变化。这个属性是自动勾上的。我们把勾去掉就行了。如下图:

3.1 现在Use Auto Layout 这个属性的勾已经去掉了,再次运行程序,变大变小就没问题了。OK,学习IOS很多小问题要注意,一步步来。

时间: 2024-11-10 01:19:54

IOS学习02简单动画的相关文章

ios状态栏调整 简单动画的知识点

首先状态栏式view的属性,所以在viewController中直接重写: /** 修改状态栏 */ - (UIStatusBarStyle)preferredStatusBarStyle { // 修改状态栏的颜色(白色) return UIStatusBarStyleLightContent; } // 这种返回值没有*的说明不是对象,那么不是枚举就是结构体,大多数情况是枚举,所以取值也比较简单,一般是返回值后边加上状态: 在UIKit学习中常用的块动画: // 块动画 animateWit

iOS学习笔记10-UIView动画

上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UIView动画封装 一.UIView动画 苹果知道图层动画使用麻烦,就为我们封装到了UIView里,使我们可以简单的实现各种动画效果. 1. 基础动画 主要实现方法为: + (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTime

ios学习之简单的登陆布局

哈哈哈哈哈,成为土豪了,必须买个mac开始装逼了,买了也不能闲着 ,顺便就学学ios吧,就学一个简单的登陆界面,反正什么app都有登陆界面.开动! 先看看效果图: 我可以说很丑吗? 上点代码吧: // // MineUiViewController.m // UITabview // // Created by xiaoyuan on 15/4/16. // Copyright (c) 2015年 xiaoyuan. All rights reserved. // #import "MineUi

ios开发之--简单动画效果的添加

记录一个简单的动画效果,自己写的,很简单,仅做记录. 附一个demo的下载地址: https://github.com/hgl753951/hglTest.git 代码如下: 1,准备 BOOL _isOpen; NSMutableArray * _btnArray; 2,具体代码 -(void)initUI { _btnArray = [[NSMutableArray alloc]init]; for (int i=0; i<4; i++) { UIButton * btn = [UIButt

ios 学习总结之动画

CAlaye的动画 //创建CAlayer动画 CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"bounds.size"]; //设置初始大小 [animation setFromValue:[NSValue valueWithCGSize:CGSizeMake(1.0, 1.0)]]; //设置运行后的方法 [animation setToValue:[NSValue  valueWithCGS

iOS学习笔记---简单的学习总结

1,xcode6.0正式版必须是OS X10.9.4及以上版本才可安装: 2,xcode6.0正式版创建命令行项目时,无法选择swift语言:但是创建iOS应用项目时可以选择swift语言: 3,storyboard过大,或者说运行到模拟器上位置不正确,原因是storyboard尺寸过大,在右侧属性栏中调成iPhone4(我的选择)的320*480即可: 4,iPhone模拟器过大:选择模拟器windows -> Scale 选择50%即可: 5,iPhone模拟器没有home键,按住comma

iOS 学习完整项目,优秀的动画例子收藏 1

又到周一工作日啦,为了给大家多打点鸡血~code4app[iOS weekly]诞生了,从这周开始,每周一,为你推荐整理的上周code4app精华内容,需要的赶快mark下和关注,妈妈再也不用担心我的学习了~ [一周精品源码] 各种动画的集合demo[img]file:///C:\Users\zhangjy\AppData\Local\Temp\[email protected][GWU0353$FOVS.png[/img]http://www.code4app.com/forum.php?mo

iOS学习笔记—— UItableView 控件的简单使用

UITableView 可以说是iOS开发中最常用的控件,除了游戏之外,几乎所有的应用中独会出现他的身影. 使用UITableView控件需要遵守两种协议 UITableViewDelegate和 UITableViewDataSource. 常用方法如下: 1.返回(每个分区)表单元个数(行数) - (NSInteger) tableView: (UItableView *) tableVIew numberOfRowsInSection: (NSInteger)section 2.返回表单元

Javascript学习------top/left简单动画,效果与jquery的动画差不多

在网上查看jquery的动画帧率为13毫秒 我用下面的小例子验证了一下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>top/left简单动画</title> 5 <style type="text/css"> 6 * { margin: 0px; padding: 0px; } 7 </style> 8 <script src="http: