苹果ios开发一年的工作笔记
### 苹果iOS开发一年的工作笔记知识点概览 #### 一、基础概念与技术要点 在iOS开发过程中,掌握一些核心的基础概念和技术要点是至关重要的。以下是从文档中提炼出来的一些关键知识点: ##### 1. **键盘管理** - **`textFieldShouldReturn:`** 方法用于处理当用户按下键盘上的“返回”键时的行为。通过调用 `[textField resignFirstResponder]` 可以隐藏当前的键盘。 ```objective-c -(BOOL)textFieldShouldReturn:(id)textField { [textField resignFirstResponder]; return YES; } ``` ##### 2. **Core Graphics** - **`CGRect`** 是一个表示矩形的结构体,在 iOS 开发中非常常见。它可以用来定义视图的位置和大小。 - 创建一个 `CGRect` 可以通过 `CGRectMake` 函数完成,它接受四个参数:`x`、`y`、`width` 和 `height`。 ```objective-c CGRect frame = CGRectMake(origin.x, origin.y, size.width, size.height); ``` - 将 `CGRect` 转换成字符串可以通过 `NSStringFromCGRect` 实现,而反过来通过 `CGRectFromString` 可以从字符串恢复出矩形。 ```objective-c NSString *rectString = NSStringFromCGRect(frame); CGRect recoveredFrame = CGRectFromString(rectString); ``` - `CGRectInset` 可以创建一个新的矩形,该矩形比原始矩形更大或更小,但中心点保持不变。正数代表缩小,负数代表扩大。 ```objective-c CGRect insetRect = CGRectInset(frame, 10, 10); // 缩小 10 ``` - `CGRectIntersectsRect` 方法可以判断两个矩形是否相交。 ```objective-c BOOL intersects = CGRectIntersectsRect(rect1, rect2); ``` - `CGRectZero` 表示一个位置为 (0, 0) 并且宽高都为 0 的特殊矩形。 ```objective-c CGRect zeroRect = CGRectZero; ``` ##### 3. **CGPoint & CGSize** - `CGPoint` 和 `CGSize` 分别用来表示点和大小。 - 创建 `CGPoint` 和 `CGSize` 可以使用 `CGPointMake` 和 `CGSizeMake` 方法。 ```objective-c CGPoint point = CGPointMake(x, y); CGSize size = CGSizeMake(width, height); ``` ##### 4. **视图属性设置** - 设置视图的透明度通过 `setAlpha:` 方法实现。 ```objective-c [myView setAlpha:0.5]; // 设置透明度为 50% ``` - 设置视图背景色可以通过 `setBackgroundColor:` 方法完成,支持多种预定义的颜色。 ```objective-c [myView setBackgroundColor:[UIColor redColor]]; ``` - 自定义颜色可以通过 `initWithRed:green:blue:alpha:` 方法创建。 ```objective-c UIColor *customColor = [[UIColor alloc] initWithRed:0.5 green:0.7 blue:0.9 alpha:1.0]; ``` ##### 5. **屏幕尺寸与方向** - 竖屏模式下的分辨率通常为 320x480。 - 横屏模式下的分辨率则为 480x320。 - 状态栏的高度固定为 20 像素。 - 导航栏和工具栏的高度为 44 像素。 - 隐藏状态栏可以通过 `[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]` 实现。 ```objective-c [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; ``` - 改变应用的方向可以通过 `[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]` 完成。 ```objective-c [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]; ``` ##### 6. **屏幕变动检测** - 使用 `orientation` 属性可以获取当前的屏幕方向。 ```objective-c if (orientation == UIInterfaceOrientationLandscapeLeft) { // 处理横屏左方向的操作 } ``` ##### 7. **视图布局** - 使用自动调整大小可以使视图适应其父视图的大小变化。 ```objective-c aView.autoresizingSubviews = YES; aView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight); ``` ##### 8. **按钮与图像** - 创建按钮并设置其属性可以通过 `UIButton` 类完成。 ```objective-c UIButton *scaleUpButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [scaleUpButton setTitle:@"放大" forState:UIControlStateNormal]; scaleUpButton.frame = CGRectMake(40, 420, 100, 40); [scaleUpButton addTarget:self action:@selector(scaleUp) forControlEvents:UIControlEventTouchUpInside]; ``` - 设置视图背景图片可以通过 `setImage:` 方法完成。 ```objective-c UIImageView *aView = ...; [aView setImage:[UIImage imageNamed:@"name.png"]]; ``` - 也可以通过 `colorWithPatternImage:` 方法设置带有图案的背景颜色。 ```objective-c view1.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"image1.png"]]; ``` ##### 9. **UISlider 定制** - 对于 `UISlider`,可以通过 `setMinimumTrackImage:` 和 `setMaximumTrackImage:` 方法自定义滑块左右两侧的图像。 ```objective-c UIImage *leftTrack = [UIImage imageNamed:@"bright_left.png"]; UIImage *rightTrack = [UIImage imageNamed:@"bright_right.png"]; [mySlider setMinimumTrackImage:leftTrack forState:UIControlStateNormal]; [mySlider setMaximumTrackImage:rightTrack forState:UIControlStateNormal]; ``` 以上是从文档中提炼出来的部分知识点,这些基础知识对于初学者来说非常重要,也是深入学习 iOS 开发的基石。希望这些总结能够帮助大家更好地理解和掌握 iOS 开发的相关技术。
剩余52页未读,继续阅读
- 粉丝: 2
- 资源: 51
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- java-leetcode题解之Possible Bipartition.java
- java-leetcode题解之Positions of Large Groups.java
- java-leetcode题解之Populating Next Right Pointers in Each Node
- SwiftUI编写的贪吃蛇小游戏讲解
- 瑞昱主控 RTS5876 规格书
- python课程设计 xhyxhy
- 学术报告-无线领域-人工智能- 2022 华为-香港科技大学未来无线理论联合研讨会
- 最新浪子授权系统网站源码 全开源免授权版本
- 数据结构实验之队列实现:基于顺序存储的循环队列及其操作实践
- 数据结构中链栈的实现及其应用解析-C++实现
- 1
- 2
- 3
- 4
- 5
- 6
前往页