IOS工作笔记(一)

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

说明:记录下学习IOS的一些琐碎,有些在现在看起来很简单幼稚,不过权当学习足迹吧!

1.xib开发ipad使用横屏,可以在xib的view设置orientation为landscape,portrait是竖屏。

2.在.m文件中声明UITextField后,若想获取。比如想获取pwd

@PRoperty(nonatomic,weak) UITextField *pwd;

那么可以用 self.pwd.text获取。

_pwd.text;//这也可以获取到。

因为self.view其实调用的是pwd的get方法。就是

1-(UITextField *)pwd{2return_pwd;3}

3.字符串比较,看是否相等

1NSString *str1 =self.pwdField.text;2if([str1 isEqualToString:@"123"]){3//其它操作4}

4.新建一个项目,若不想使用自带的viewController和storyboard,删除之,那么在新建xib文件后容易出现问题就是程序运行后主界面是空白的。这时可以这么来解决,就是自己定义需要现实的view。

①在Supporting Files文件夹,编辑plist文件。将Main storyboard file base name置空(因为storyboard文件已删除)。

②在Appdelegate.m的

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

方法中添加代码。如想展示LoginViewController,那么可以这样写。固定格式

1self.window =[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];2self.window.rootViewController =[[LoginViewController alloc]init];3[self.window makeKeyAndVisible];//让视图可见,并显示在屏幕上

5.使用xib文件连线时,必须把view也连起来,否则就是没有画面的程序,切记。

6.显示控件时,需要用以下代码。如:

1[self.view addSubview:btn1];2[self.view addSubview:btn2];

按钮添加事件时,可以用

1[btn1 addTarget:self action:@selector(btnPressed:) forControllerEvents:UIControlEventTouchUpInside];2-(void)btnPressed:(id) sender{3UIButton *btn = (UIButton *)sender;4//按钮的事件代码5}

当然也有如下形式,最好使用上边的。(id)sender这个参数指button本身,

1-(void) login{//该函数没有参数,容易出错2//事件3}

7.一般不这样定义button

1CGRect frame4 = CGRectMake(430,200,200,100);2UIButton *loginBtn = [[UIButton alloc]initWithFrame:frame4];

一般是这样来定义

1loginBtn =[UIButton buttonWithType:UIButtonTypeRoundedRect];2loginBtn.frame = frame4;

8.设置根控制器,需要在AppDelegate中写。一般这种格式是固定的,需要在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{}

中写。如:

1- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{2//必须写在最前边,否则视图不出现3self.window =[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];4//若要显示其它东西,如百度地图,那么也要声明5self.mapManager = [[BMKManager alloc]init];//不想显示时可以删去67//定义MainViewController为根控制器8UINavigationController *controller =[UINavigationController alloc]initWithRootViewController:[[MainViewController alloc]init]];9self.window.rootViewController =controller;10[self.window makeKeyAndVisible];11self.window.backgroundColor =[UIColor whiteColor];12returnYES;1314}

若不想使用UINavigationController,那么可以直接定义

self.window.rootViewController = [[LoginViewController alloc]init];

相当于把定义根控制器的那行代码删除即可。

然后对应的,页面之间的跳转有两种方法。

[self presentViewController:mainView animated:YES completion:nil];//view自带的属性[self.navigationController pushViewController:mainView animated:true];

//必须在AppDelegate设置UINavigationController,否则pushViewController无效

//并且使用pushViewController后,在B页面,会自带一个“Back”按钮返回上一页。

9.程序加载时首页展现的内容是在下边方法实现的,并且[super viewDidLoad]不能省略。

1-(void)viewDidLoad{2[super viewDidLoad];3//其它代码4}

10.@property属性的区别

weak:一般用于UI组件,如UIButton,UILabel,UITextField等。

strong:用于一般对象,如数组等

copy:用于NSString

assign:用于基本类型,如int、BOOL等

在xib和纯代码中是有区别的,xib中UI组件用weak,subViews数组会强引用这些组件;纯代码写时,就得用strong属性了,否则会报

Assigning retained object to weak variable; object will be released after assignment

切记。

NSArray和NSDictionary的用法举例,字典本身就属于键值对,其中的key为icon和desc,不同图片的key对应不同的值。

1@property(nonatomic,strong)NSArray *imageData;2NSMutableDictionary *image1 =[NSMutableDictionary dictionary];3image1[@"icon"] =@"hello";//属于键值对形式4image1[@"desc"] =@"这是一张图片的说明";56NSMutableDictionary *image2 =[NSMutableDictionary dictionary];7image2[@"icon"] =@"hello2";8image2[@"desc"] =@"这是一张图片的说明2";910//快速的创建数组11self.imageData = @[image1,image2];

当程序中使用较多的key,为了防止把key拼错,可以定义宏常量,如

#defineIconKey @"icon"

以后用到@"icon"时,可以用IconKey直接代替

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航