您的位置:首页 > 产品设计 > UI/UE

iOS开发UI篇 -- 0323初识iOS

2015-05-29 17:24 363 查看
简介:iOS的一些基础只是,包括xcode、模拟器,最后一个UIButton和frame属性结合的一个demo

1.Retain:视网膜屏幕(高清屏幕),从iOS4开始

2、新建项目:

Product Name :产品名称

Organnization Name:组织名称

Company Identifier:公司的唯一标识,一般是公司域名倒过来写

Bundle Identifier: app的唯一标识,使用Company Identifier + Product Name 来当做app唯一标识

Class Prefix:类前缀,可以写自己开发的(宝杰BJ),也可以是项目名称(微博WB)

Device:选择iPhone

3、xcode文件介绍:初学者一般新建Single View Project

4、UIViewController:控制器,来控制UIView的

其实,每当显示一个新界面的时候,首先会创建一个新的UIViewController对象,然后创建一个对应的全屏UIView,

UIViewController负责管理这个UIView

UIViewController就是UIView得大管家,负责创建,显示,销毁UIView,

负责监听UIView内部的事件,负责处理UIView与用户交互。

每一个UIViewController对应一个UIView,每一个UIVc对象内部都有一个UIView属性,就是他负责管理的UIView对象

5、快捷键:

模拟器快捷键:

退回手机主界面:Commad + Shitf + H

6、监听按钮点击

因为UIVc的作用就是监听UIView的内部事件,当点击事件发生的时候,会调用一个Btn方法来通知UIVc按钮被点了,

UIVc就可以在这个Btn方法中做相应的事情

7、如果项目中有多个storyBoard,如何确定哪个是主界面?

点击项目--targets-- Deployments--Main Interface 就行设置

8、模拟器的使用

设置大小: 模拟器--Window--缩放比例 进行设置

设置位置:模拟器--调试--位置--自定义位置

设置型号:模拟器--硬件--设备

设备旋转:模拟器--硬件--xx旋转

回到首页:模拟器--硬件--首页(command shift h)

卸载app: 长按住app,抖动;取消:返回首页即可

退出app: 回到首页app并没有退出,连续两次(command shift h)来关闭程序

模拟器处于运行状态的话对app进行改变、设置 会报错!

9、退出第一响应者

// 单个退出

[self.num1 resignFirstResponder];

// 全部退出

[self.view endEditing:YES]

10、连线问题(线还连着,但是定义的属性已经注释了)

setValue:forUndefiendKey:]this class is not key value.....

11、属性和方法不必暴漏,建议放在.m文件的Interface中

12、位置尺寸

CGRect frame:以父控件的左上角为坐标原点,表示控件的位置尺寸(万能的)

CGRect bounds:以控件本身的左上角为坐标原点,表示控件的尺寸(xy都为0)

CGPoint center:以父控件的左上角为坐标原点,控件的中点位置

13、UIButton

能显示文字,能显示图片(背景图片和前置图片),还能调整内部图片和文字的位置

14、关于结构体:

不允许直接修改对象的结构体属性 的成员,可以间接修改。

eg : self.btn.frame.origin.y = self.btn.frame.origin.y - 10;(error)

对象:self.btn

对象的结构体属性:self.btn.origin

对象的结构体属性成员:self.btn.origin.y

// 设置临时结构体

CGRect tmpFrame = self.btn.frame;

// 修改

tmpFrame.origin.y -= 10;

// 将修改好的赋值给原来的结构体

self.btn.frame = tmpFrame;

使用frame和bounds改变尺寸(放大缩小,修改CGSize)区别在于,bounds中心点位置不变,frame左上角坐标不变(xy没改变)

15、storyboard和xib

共同点:

都用来描述软件界面

都用Interface Builder工具来编辑

不同点

Xib是轻量级的,用来描述局部的UI界面,在iOS5之前使用

Storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系,在iOS5之后出现

16、使用frame属性实现对UIButton的移动和缩放

//  ViewController.m
//  0323-常见结构体应用
//
//  Created by hubaojie on 15-5-28.
//  Copyright (c) 2015年 hubaojie. All rights reserved.
//

#import "ViewController.h"
#define btnX 100
#define btnY 100
#define btnW 55
#define btnH 40
#define AddBtnY 50
#define moveSize 30;
@interface ViewController ()
@property(nonatomic,weak)UIButton *upBtn;
@property(nonatomic,weak)UIButton *downBtn;
@property(nonatomic,weak)UIButton *leftBtn;
@property(nonatomic,weak)UIButton *rigthBtn;
@property(nonatomic,weak)UIButton *bigBtn;
@property(nonatomic,weak)UIButton *smallBtn;
@property(nonatomic,weak)UIButton *headBtn;

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

for (int index = 0; index < 7; index ++) {
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.backgroundColor = [UIColor grayColor];
[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[self.view addSubview:btn];
[btn addTarget:self action:@selector(moveOrChange:) forControlEvents:UIControlEventTouchUpInside];
btn.tag = 10 + index;

switch (btn.tag) {
case 10:
btn.frame = CGRectMake(btnX, btnY, btnW, btnH);
[btn setTitle:@"up" forState:UIControlStateNormal];
self.upBtn = btn;
break;
case 11:
btn.frame = CGRectMake(btnX, btnY+AddBtnY, btnW, btnH);
[btn setTitle:@"down" forState:UIControlStateNormal];
self.downBtn = btn;
break;
case 12:
btn.frame = CGRectMake(btnX, btnY+AddBtnY*2, btnW, btnH);
[btn setTitle:@"left" forState:UIControlStateNormal];
self.leftBtn = btn;
break;
case 13:
btn.frame = CGRectMake(btnX, btnY+AddBtnY*3, btnW, btnH);
[btn setTitle:@"right" forState:UIControlStateNormal];
self.rigthBtn = btn;
break;
case 14:
btn.frame = CGRectMake(btnX, btnY+AddBtnY*4, btnW, btnH);
[btn setTitle:@"big" forState:UIControlStateNormal];
self.bigBtn = btn;
break;
case 15:
btn.frame = CGRectMake(btnX, btnY+AddBtnY*5, btnW, btnH);
[btn setTitle:@"small" forState:UIControlStateNormal];
self.smallBtn = btn;
break;
case 16:
btn.frame = CGRectMake(220, 240, 50, 50);
[btn setTitle:@"head" forState:UIControlStateNormal];
//                [btn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
self.headBtn = btn;
break;

default:
break;
}
}
}
- (void)moveOrChange:(UIButton *)btn{
// 我们不可以直接修改 对象的结构体的属性的成员变量,但是我们可以间接修改

//    对操作添加动画效果,最后别忘记提交动画
[UIView beginAnimations:nil context:nil ];
[UIView setAnimationDuration:2];
//    1. 建立临时结构体
CGRect tmpFrame = self.headBtn.frame;
switch (btn.tag) {
case 10:
//            2. 间接对结构体属性成员变量进行操作
tmpFrame.origin.y -= moveSize;
break;
case 11:
tmpFrame.origin.y += moveSize;
break;
case 12:
tmpFrame.origin.x -= moveSize;
break;
case 13:
tmpFrame.origin.x += moveSize;
break;
case 14:
tmpFrame.size.width += moveSize;
tmpFrame.size.height += moveSize;
break;
case 15:
tmpFrame.size.width -= moveSize;
tmpFrame.size.height -= moveSize;
break;

default:
break;
}
//    3. 将修改后的结构体赋值给原结构体
self.headBtn.frame = tmpFrame;

[UIView commitAnimations];
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: