Objective-C 基础语法详解

【10】Objective-C 基础语法详解

Objective-C语法之第一个iPhone应用程序


获取手机屏幕尺寸的方法

  1. //得到屏幕的宽和高
  2. CGRect rect=[[UIScreen mainScreen] bounds];
  3. CGSize size = rect.size;
  4. int screenWidth = size.width;
  5. int screenHeight = size.height;

1.文本框视图


在视图中加入一个文本框,可在框内攥写一些内容,设置字体颜色,位置 ,大小等等。

  1. //创建label视图
  2. label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 30)];
  3. //设置显示内容
  4. label.text = @"雨松MOMO的程序世界";
  5. //设置背景颜色
  6. label.backgroundColor = [UIColor blueColor];
  7. //设置文字颜色
  8. label.textColor = [UIColor whiteColor];
  9. //设置显示位置居中
  10. label.textAlignment = UITextAlignmentCenter;
  11. //设置字体大小
  12. label.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:10] size:20];


2.按钮视图


按钮类型为1 为普通按钮,CGrectMake设置按钮的位置与大小,前两个参数设置按钮起始X 与 Y坐标,后两个参数设置按钮的宽度与高度。


这里重点说一下addTarget, 它可以设置按钮的绑定事件,action:设置按钮点击后响应方法,这行代码的意思是点击这个按钮后程序执行方法ButtonPressed这个函数中的代码。

  1. //创建按钮
  2. button = [UIButton buttonWithType:1];
  3. //设置按钮范围
  4. button.frame = CGRectMake(0, 40, screenWidth, 30);
  5. //设置按钮显示内容
  6. [button setTitle:@"这是一个按钮" forState:UIControlStateNormal];
  7. //设置按钮显示颜色
  8. button.backgroundColor = [UIColor blackColor];
  9. //设置按钮改变后 绑定响应方法
  10. [button addTarget:self action:@selector(ButtonPressed) forControlEvents:UIControlEventTouchUpInside];


点击这个按钮后进入下面这个方法,弹出一个dialog对话框。

  1. - (void)ButtonPressed
  2. {
  3. //创建对话框
  4. UIAlertView * alertA= [[UIAlertView alloc] initWithTitle:@"我的视图" message:@"欢迎一起学习IPHONE开发" delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];
  5. //添加取消按钮
  6. [alertA addButtonWithTitle:@"取消"];
  7. //将这个UIAlerView 显示出来
  8. [alertA show];
  9. //objective-C 不像java 有自己的垃圾回收机制 所以我们在编写程序中一定要注意释放内存 从一开始就养成良好习惯
  10. [alertA release];
  11. }


3.进度条视图


和上面button视图的构建差不多,这里设置进度条最大值与最小值,拖动的时候就可以直接得到这个范围之间的数值,同样将拖动事件绑定在valueChangeTest方法中。

  1. //创建进度条
  2. slider=[[UISlider alloc] initWithFrame:CGRectMake(0,80,screenWidth,30)];
  3. //进度条最大值
  4. slider.maximumValue=100;
  5. //进度条最小值
  6. slider.minimumValue=0;
  7. //起始点的位置
  8. slider.value=20;
  9. //设置背景颜色
  10. slider.backgroundColor=[UIColor blackColor];
  11. //设置进度条改变后 绑定响应方法
  12. [slider addTarget:self action:@selector(valueChangeTest) forControlEvents:UIControlEventValueChanged];


拖动进度条后发生改变进入下面方法,[slider vale]可以得到拖动的进度值。

  1. - (void)valueChangeTest
  2. {
  3. float value = [slider value];
  4. NSLog(@"进度条已经发生改变:%f",value);
  5. }


4.编辑框视图


非常常见的视图,可以在编辑框中输入信息。前提是用户触摸点击输入框,这时弹出系统软键盘方可输入信息,但是这个输入框不会自动关闭,须要我们在程序中自己调用代码去关闭,稍后介绍如何关闭这个输入框。

  1. //创建文字输入框
  2. textfield = [[UITextField alloc] initWithFrame:CGRectMake(0,120,screenWidth,50)];
  3. //默认显示文字
  4. textfield.text = @"这是一个输入框";
  5. //点击后显示文字
  6. textfield.placeholder = @"请在输入框是输入信息";
  7. //文字显示位置,这里居左对齐
  8. textfield.textAlignment = UITextAlignmentLeft;
  9. //默认显示文字颜色
  10. textfield.textColor = [UIColor grayColor];
  11. //设置输入的字体
  12. textfield.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:0] size:17];
  13. //设置输入框的类型,3为普通类型
  14. textfield.borderStyle = 3;
  15. //点击输入框后清楚原始内容
  16. textfield.clearsOnBeginEditing = YES;
  17. //设置输入框背景颜色
  18. textfield.backgroundColor = [UIColor blackColor];


5.图片视图


设置图片在屏幕中显示的位置,当然这个图片文件必需拷贝到工程当中,拷贝方法可以直接将图片用鼠标拖动到Xcode的工程中。


  1. //创建图片视图
  2. imageview = [[UIImageView alloc] initWithFrame:
  3. CGRectMake(100, 200, 120, 120)];
  4. //设置图片的显示的资源路径
  5. [imageview setImage:[UIImage imageNamed:@"temp.jpg"]];

6.透明全屏按钮


它的存在就是为了解决输入法出现后无法自动关闭,就是说如果输入法软键盘出现后 ,这时候点击屏幕任意位置关闭输入法,实现的原理是用户点击到了屏幕中设置的透明按钮,调用关闭输入法方法将输入法关闭了而已 .

  1. //创建一个隐藏的按钮
  2. backgroudButton=[[UIButton alloc] init];
  3. //让这个填充整个屏幕
  4. backgroudButton.frame = self.view.frame;
  5. //添加按钮的响应时间,用来关闭软键盘
  6. [backgroudButton addTarget:self action:@selector(ButtonClick) forControlEvents:UIControlEventTouchUpInside];

点击屏幕任意位置,关闭输入法。

  1. -(void)ButtonClick
  2. {
  3. // 触摸屏幕人以地方 关闭软键盘
  4. [textfield resignFirstResponder];
  5. }

这样所有的视图的代码都已经贴上,这些视图实际上是subView,须要将这些subView添加到屏幕的主视图当中。并且为了避免内存出现泄漏,一定要及时的释放这些视图。

  1. //将所有对象添加入视图中
  2. [self.view addSubview:backgroudButton];
  3. [self.view addSubview:label];
  4. [self.view addSubview:imageview];
  5. [self.view addSubview:button];
  6. [self.view addSubview:slider];
  7. [self.view addSubview:textfield];
  8. //释放所有对象
  9. [imageview release];
  10. [label release];
  11. [slider release];
  12. [textfield release];

下面给出完整的代码



HelloWorldViewController.h

  1. #import <UIKit/UIKit.h>
  2. @interface HelloWorldViewController : UIViewController
  3. {
  4. //文本框
  5. UILabel * label;
  6. //按钮
  7. UIButton * button;
  8. //进度条
  9. UISlider *slider;
  10. //输入框
  11. UITextField * textfield;
  12. //图片视图
  13. UIImageView *imageview ;
  14. //背景按钮
  15. UIButton * backgroudButton;
  16. }
  17. @end

HelloWorldViewController.m

  1. #import "HelloWorldViewController.h"
  2. @implementation HelloWorldViewController
  3. - (void)didReceiveMemoryWarning
  4. {
  5. // Releases the view if it doesn't have a superview.
  6. [super didReceiveMemoryWarning];
  7. // Release any cached data, images, etc that aren't in use.
  8. }
  9. #pragma mark - View lifecycle
  10. // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
  11. - (void)viewDidLoad
  12. {
  13. [super viewDidLoad];
  14. //得到屏幕的宽和高
  15. CGRect rect=[[UIScreen mainScreen] bounds];
  16. CGSize size = rect.size;
  17. int screenWidth = size.width;
  18. int screenHeight = size.height;
  19. //创建label视图
  20. label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, screenWidth, 30)];
  21. //设置显示内容
  22. label.text = @"雨松MOMO的程序世界";
  23. //设置背景颜色
  24. label.backgroundColor = [UIColor blueColor];
  25. //设置文字颜色
  26. label.textColor = [UIColor whiteColor];
  27. //设置显示位置居中
  28. label.textAlignment = UITextAlignmentCenter;
  29. //设置字体大小
  30. label.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:10] size:20];
  31. //创建按钮
  32. button = [UIButton buttonWithType:1];
  33. //设置按钮范围
  34. button.frame = CGRectMake(0, 40, screenWidth, 30);
  35. //设置按钮显示内容
  36. [button setTitle:@"这是一个按钮" forState:UIControlStateNormal];
  37. //设置按钮显示颜色
  38. button.backgroundColor = [UIColor blackColor];
  39. //设置按钮改变后 绑定响应方法
  40. [button addTarget:self action:@selector(ButtonPressed) forControlEvents:UIControlEventTouchUpInside];
  41. //创建进度条
  42. slider=[[UISlider alloc] initWithFrame:CGRectMake(0,80,screenWidth,30)];
  43. //进度条最大值
  44. slider.maximumValue=100;
  45. //进度条最小值
  46. slider.minimumValue=0;
  47. //起始点的位置
  48. slider.value=20;
  49. //设置背景颜色
  50. slider.backgroundColor=[UIColor blackColor];
  51. //设置进度条改变后 绑定响应方法
  52. [slider addTarget:self action:@selector(valueChangeTest) forControlEvents:UIControlEventValueChanged];
  53. //创建文字输入框
  54. textfield = [[UITextField alloc] initWithFrame:CGRectMake(0,120,screenWidth,50)];
  55. //默认显示文字
  56. textfield.text = @"这是一个输入框";
  57. //点击后显示文字
  58. textfield.placeholder = @"请在输入框是输入信息";
  59. //文字显示位置,这里居左对齐
  60. textfield.textAlignment = UITextAlignmentLeft;
  61. //默认显示文字颜色
  62. textfield.textColor = [UIColor grayColor];
  63. //设置输入的字体
  64. textfield.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:0] size:17];
  65. //设置输入框的类型,3为普通类型
  66. textfield.borderStyle = 3;
  67. //点击输入框后清楚原始内容
  68. textfield.clearsOnBeginEditing = YES;
  69. //设置输入框背景颜色
  70. textfield.backgroundColor = [UIColor blackColor];
  71. //创建图片视图
  72. imageview = [[UIImageView alloc] initWithFrame:
  73. CGRectMake(100, 200, 120, 120)];
  74. //设置图片的显示的资源路径
  75. [imageview setImage:[UIImage imageNamed:@"temp.jpg"]];
  76. //创建一个隐藏的按钮
  77. backgroudButton=[[UIButton alloc] init];
  78. //让这个填充整个屏幕
  79. backgroudButton.frame = self.view.frame;
  80. //添加按钮的响应时间,用来关闭软键盘
  81. [backgroudButton addTarget:self action:@selector(ButtonClick) forControlEvents:UIControlEventTouchUpInside];
  82. //设置整个视图的背景颜色
  83. [self.view setBackgroundColor:[UIColor blackColor]];
  84. //将所有对象添加入视图中
  85. [self.view addSubview:backgroudButton];
  86. [self.view addSubview:label];
  87. [self.view addSubview:imageview];
  88. [self.view addSubview:button];
  89. [self.view addSubview:slider];
  90. [self.view addSubview:textfield];
  91. //释放所有对象
  92. [imageview release];
  93. [label release];
  94. [slider release];
  95. [textfield release];
  96. }
  97. - (void)ButtonPressed
  98. {
  99. //创建对话框
  100. UIAlertView * alertA= [[UIAlertView alloc] initWithTitle:@"我的视图" message:@"欢迎一起学习IPHONE开发" delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];
  101. //添加取消按钮
  102. [alertA addButtonWithTitle:@"取消"];
  103. //将这个UIAlerView 显示出来
  104. [alertA show];
  105. //objective-C 不像java 有自己的垃圾回收机制 所以我们在编写程序中一定要注意释放内存 从一开始就养成良好习惯
  106. [alertA release];
  107. }
  108. - (void)valueChangeTest
  109. {
  110. float value = [slider value];
  111. NSLog(@"进度条已经发生改变:%f",value);
  112. }
  113. -(void)ButtonClick
  114. {
  115. // 触摸屏幕人以地方 关闭软键盘
  116. [textfield resignFirstResponder];
  117. }
  118. - (void)viewDidUnload
  119. {
  120. [super viewDidUnload];
  121. // Release any retained subviews of the main view.
  122. // e.g. self.myOutlet = nil;
  123. }
  124. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
  125. {
  126. // Return YES for supported orientations
  127. return (interfaceOrientation == UIInterfaceOrientationPortrait);
  128. }
  129. @end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值