20161024

  打算转ios开发工程师的岗位

  今天看了下视频,自己吭呲吭呲几下开始写UI

  先把Xcode8 的界面总结下

navigator ['nævɪɡetɚ] 导航器、浏览器

symbol navigator  符号导航器

此导航器提供快速定位至项目中局部标识符的方法,例如组成应用程序的类、协议等。

debug~ 调试

breakpoint ~ 断点

report navigator 报告导航器

delegate  [ˈdɛləgɪt; (for v.,) ˈdɛləˌgeɪt]  委托storyboard  ['stɔrɪbɔrd] 故事版

asset  ['æsɛt] 有价值的人或者物;资产

launch screen 启动屏幕

一、Xcode8左侧界面介绍

1、Project navigator

AppDelegate 应用代理文件,是系统运行本应用的委托,里面定义了如程序的进入与退出、设备方向旋转等众多全局方法。

ViewController 视图控制器可以创建和管理视图,并管理视图上显示的数据,也可以监测设备方向的变化,并调整视图大小以适应屏幕。

Main.storyboard 故事板可以使所有的视图控制器,以及它们之间的关系一目了然。故事板也是适配多个分辨率设备的利器。

Assets.cassets 资源文件夹可以方便您进行图片管理,在读取图片时,不需要加上图片名的后缀。同时还可以将图片进行加密压缩保存,以提高软件的安全性。

LaunchScreen.storyboard 启动场景故事板,可以帮助您设计和适配程序的启动页。

info.plist 每个程序都会使用信息属性列表文件,存储项目配置信息。例如:程序的版本号、显示用的图标、支持的设备方向等等。

products 在产品目录中,存放项目编译后生成的文件包。使用【产品>编译】命令,可以在此处生成合适发布到苹果市场的应用的压缩包。

2、symbol navigator

层级面板里显示了项目中的类列表,点击类名左侧的右向箭头,可以查看类下的方法。

3、Find navigator

在搜索导航面板中,允许您通过输入关键字,来查找项目中所有文件,找出拥有该关键字的文档。

4、Issue navigator

状况面板显示了项目中所有文档中的代码问题。黄色表示各种不影响程序运行的小问题,红色表示致命错误,需要修复才能运行。

5、Debug navigator

调试面板-可查看应用运行时占用的cpu大小,内存的使用情况,硬盘的读取与存入的实时状态,还有网络请求状态。

6、Breakpoint navigator 

断点调试面板

7、Report navigator

当在代码区进行断点调试时,这里将列出项目中的所有断点。点击按钮查看日志面板,记录当前项目所有的历史动作。

8、添加的组,并不是真正的文件夹,在硬盘上并不存在。

9、source-control status

搜索当前文件和显示版本控制状态下的文件

二、Xcode8右侧界面介绍

1、Assistant editor

点击辅助编辑器按钮,将代码区切换为左右两个区域,方便编写代码时对比代码文件,或者和故事板上的控件做连接。

//

//  ViewController.m

//  计算器的实现

//

//  Created by Jason on 16/10/24.

//  Copyright © 2016年 Jason. All rights reserved.

//

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UITextField *file1;

@property (weak, nonatomic) IBOutlet UITextField *file2;

@property (weak, nonatomic) IBOutlet UILabel *dosumvalue;

@end

@implementation ViewController

-(IBAction)dosum{

//获取第一个值

int num1 = [self.file1.text intValue];

//获取第二个值

int num2 = [self.file2.text intValue];

//计算结果

int sum = num1 + num2;

//赋值给控件

self.dosumvalue.text = [NSString stringWithFormat:@"%d",sum];

//第一种方法:收起键盘

//[self.file1 resignFirstResponder];

//[self.file2 resignFirstResponder];

//第二种方法:

[self.view endEditing:YES];

}

@end

20161025

resign [rɪ'zaɪn]   vt放弃、辞职、委托 n辞去职务

separate [(for v.) sɛpəˌret; (for adj.) sɛprɪt] 分隔开

mutable  ['mjutəbl] adj 可变的,易变得

NSMutableArray

   //数组可以一次性添加完,以nil作为结尾标志
NSArray *array = [NSArray arrayWithObjects:@"user",@"data", nil];
//如果添加空的话,可以用以下方法
NSArray *array1 = [NSArray arrayWithObjects:@"user",[NSNull null], nil];
//可以建立可变更的数组,并设置一个初始量
NSMutableArray *array2 = [NSMutableArray arrayWithCapacity:];
//可动态添加数组元素
[array2 addObject:@"user"];
[array2 addObject:@"data"];
//合并字符串数组
NSString *str = [array2 componentsJoinedByString:@"|"];
//字符串切割成数组
NSArray *array3 = [str componentsSeparatedByString:@"|"];
//可变数组元素删除,数组从零开始
[array2 removeObjectAtIndex:]; NSMutableArray *arr = [[NSMutableArray alloc] init];
[arr addObject:[NSNumber numberWithInt:]];
NSLog(@"%@ \n %@ \n %@ \n %@ \n %@ \n %@",array,array1,array2,array3,str,arr);

输出结果

 (
user,
data
)
(
user,
"<null>"
)
(
user
)
(
user,
data
)
user|data
( )

alloc 是在内存中申请一块区域,用来存储此对象的信息,然后用init方法(oc自带方法【c语言中叫函数】)来初始化一些默认的数据,从而完成一个对象的创建。

参考:

关于OC中的alloc init方法

http://blog.sina.com.cn/s/blog_539af7300102w7hk.html

objective c中的数组和简单操作(四):

http://blog.csdn.net/holydancer/article/details/7346221

OC中NSLog函数输出格式详解:

http://www.cnblogs.com/langtianya/p/3936230.html

capacity [kə'pæsəti] 容量

arrayWithCapacity 定义数组容量的方法

implicit [ɪm'plɪsɪt] 隐式的

implicit conversion 隐式转换

20161026

坑爹的情绪,轻浮的人生,突然有种三天打鱼两天晒网的感觉。不知自己在干些什么。

空闲时间去研究张学良了,历史真的很吸引人。这里不评价历史,张学良主导的西安事变拯救了中国,也间接平定了外患。

晚上睡不着,起来整理

component [kəm'ponənt] n.成分、组件、原件 adj 组成的、构成的

placeholder ['pleis,həuldə] n.占位符

external [ɪk'stɝnl] 外部的

provide a placeholder for a view controller in an external storyboard。

freeform ['fri:,fɔ:m] 任意的,自由形态的

infer [ɪn'fɝ] vt推倒,推理

superview 父控件

sub adj 从属的

下面来接触UIView 和 button 控件的使用

Xcode8 折叠代码快捷键

cmd + option + left

取消折叠

cmd + option + right

参考

Xcode的快捷键及代码格式化:

http://bbs.itheima.com/thread-111004-1-1.html

 //
// ViewController.m
// 随机生成不同颜色的不同位置并移动的动画方块
//
// Created by Jason on 16/10/26.
// Copyright © 2016年 Jason. All rights reserved.
// #import "ViewController.h" @interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *whiteView; @end @implementation ViewController
//修改父控件的颜色
//sender就是我们点击的那个按钮
- (IBAction)changeFatherViewColor:(UIButton *)sender {
//获取父控件
UIView *fatherView = sender.superview;
//修改父控件的颜色
fatherView.backgroundColor = [UIColor redColor];
}
- (IBAction)changeFatherViewColorRandom:(UIButton *)sender {
//获取父控件
UIView *fatherView = sender.superview;
//点击获取随机颜色
//alpha 透明度 0 完全透明 1 表示完全不透明
float randomR = arc4random_uniform() / 255.0;
float randomG = arc4random_uniform() / 255.0;
float randomB = arc4random_uniform() / 255.0;
UIColor *randomColor = [UIColor colorWithRed:randomR green:randomG blue:randomB alpha:];
//修改父类的颜色
fatherView.backgroundColor = randomColor;
}
- (IBAction)creatView:(UIButton *)sender {
UIView *creatView = [[UIView alloc] init];
[self.whiteView addSubview:creatView];
creatView.frame = CGRectMake(, , , );
creatView.backgroundColor = [UIColor redColor];
} - (IBAction)creatViewMove:(UIButton *)sender {
//创建随机的View
UIView *createViewMove = [[UIView alloc] init];
[self.whiteView addSubview:createViewMove];
//随机颜色和定义大小
float randomR = arc4random_uniform() / 255.0;
float randomG = arc4random_uniform() / 255.0;
float randomB = arc4random_uniform() / 255.0;
UIColor *randomColor = [UIColor colorWithRed:randomR green:randomG blue:randomB alpha:];
createViewMove.backgroundColor = randomColor;
NSInteger ranX = arc4random_uniform();
NSInteger ranY = arc4random_uniform();
CGRect ranLocation = CGRectMake(ranX, ranY, , );
createViewMove.frame = ranLocation; [self randomMoveWithView:createViewMove]; }
-(void)randomMoveWithView:(UIView *)view{
//1.计算坐标 随机
int ranX=arc4random_uniform();
int ranY=arc4random_uniform();
//2.修改控件的frame中的origin
CGRect oldFrame=view.frame;
oldFrame.origin=CGPointMake(ranX, ranY);
//3.动画移动
//3.1动画时间也随机 [UIView animateWithDuration:0.5 animations:^{
view.frame=oldFrame;
} completion:^(BOOL finished) {
[self randomMoveWithView:view];
}];
}

- (IBAction)remoceView:(id)sender {

//清除UIView

for(UIView *view in self.whiteView.subviews ){


if([view isKindOfClass:[UIButton class]]){


continue;


}

[view removeFromSuperview];

}

}

 @end

  

最新文章

  1. JSP中的隐式对象(implicit object)
  2. PHP聊天室框架
  3. Java---多线程的加强(1)
  4. atof
  5. 一个非常有用的函数——COALESCE
  6. input内文字点击消失 弹出层,可以写表单
  7. 使用代码刷QQ的跨年红包
  8. 网络安全第一集之【SQL注入:sqlmap入门】
  9. 对讲解OS文献的反思
  10. 2018&quot;百度之星&quot;程序设计大赛 - 资格赛hdu6349三原色(最小生成树)
  11. 浅谈Java中static关键字、权限修饰符
  12. UVALive 3135--Argus+自己定义优先队列的优先规则
  13. CentOS下查看最后登录的用户信息以及LOG记录
  14. SIFT 、Hog 、LBP 了解
  15. sql one
  16. Kotlin——中级篇(一):类(class)详解
  17. Luogu 3934 Nephren Ruq Insania
  18. simple_pool对象池——优化&amp;lt;二&amp;gt;
  19. UVALive 2238 Fixed Partition Memory Management 固定分区内存管理(KM算法,变形)
  20. TeamCity - Docker创建

热门文章

  1. URL的三类编码格式(JavaScript实现)
  2. Jmeter使用吞吐量控制器实现不同的用户操纵不同的业务
  3. 2016级算法期末模拟练习赛-E.AlvinZH的青春记忆III
  4. Windows Server2008如何打开添加IIS服务器
  5. 【NOI2019十二省联合省选】部分题简要题解
  6. VS 代码自动对齐快捷键
  7. P4177 [CEOI2008]order
  8. 使用mint-ui的 InfiniteScroll 做数据分页请求
  9. java无符号Byte
  10. (转)C# 正则表达式