IOS开发总结

### IOS开发总结#### XCode快捷键Xcode是苹果为开发者提供的集成开发环境(IDE),主要用于iOS、macOS、watchOS以及tvOS的应用开发。掌握Xcode中的快捷键能够极大提升开发效率。 - **常见快捷键**: - `Cmd + Shift + O`:快速打开文件。 - `Cmd + B`:构建项目。 - `Cmd + R`:运行项目。 - `Cmd + N`:新建文件。 - `Cmd + Shift + K`:清理项目。 - `Cmd + /`:注释或取消注释当前行或多行代码。 - `Cmd + D`:复制当前行或所选文本。 - `Cmd + Shift + F`:全局搜索文件。 - `Cmd + Shift + C`:复制文件路径。 - `Cmd + Shift + M`:显示方法列表。 - `Cmd + Shift + L`:显示最近更改的文件列表。 - `Cmd + Shift + U`:显示所有未解决的警告和错误。 - `Cmd + Shift + Z`:撤销或重做操作。 - `Ctrl + Click`:快速跳转到类或方法定义处。 #### Objective-C基础Objective-C是一种面向对象的编程语言,它是iOS开发的主要语言之一,虽然Swift已经逐渐成为主流,但Objective-C仍然非常重要。 - **代码混编**:Objective-C支持与其他语言(如C)混编,这对于处理低级硬件访问非常有用。 - **代码中字符串换行**:在Objective-C中,可以在字符串内使用` `来表示换行。 - **不要调用[super release]**:在ARC(Automatic Reference Counting)环境中,不需要手动管理内存,因此不应调用`[super release]`来释放内存。 - **判断一个字符串是否包含另一个字符串**:可以使用`[str containsString:subStr]`来检查字符串`str`是否包含子字符串`subStr`。 - **类方法**:如果一个方法不依赖于实例变量,则建议将其声明为类方法,使用`+ (返回类型)方法名;`声明。 - **Category**:类别(Category)允许向现有类添加新方法,而无需修改其源代码。这是实现单个类具有多种行为的有效方式。 - **Class Extensions**:类扩展类似于类别,但更加私密,只对当前文件可见。 - **引用**:Objective-C中的引用通常指的是指向对象的指针。 - **Block**:块(Block)是Objective-C中的一种匿名函数,可用于异步操作或作为回调函数等。 - **property重命名**:可以通过`@synthesize propertyName = newPropertyName;`来重命名属性。 - **重写description**:通过覆盖`- (NSString *)description`方法来自定义对象的字符串表示形式。 - **归档和序列化**:归档(Archiving)是指将对象转换为可以持久存储的形式,而序列化则是将对象转换为字节流的过程。 - **可变性**:确定对象代表的值是否可以被更改,这在创建对象时非常重要。 - **使用new创建对象**:当初始化一个对象且不需要参数时,可以使用`[类名new]`代替`[[类名alloc] init]`。 - **文字量**:文字量提供了一种简洁的对象创建语法,例如`@"string"`用于创建NSString对象。 - **property属性**:属性可以定义为readonly、readwrite、nonatomic等,这些属性决定了对象的行为。 - **NSValue类**:使用`NSValue`类可以表示其他类型的值,如CGPoint、CGSize等。 - **对象相等性**:通过`isEqual:`方法来比较两个对象是否相等。 - **处理nil**:Objective-C中经常需要处理nil值,确保程序在nil值存在时仍能正常运行。 #### IOS应用开发技巧iOS应用开发涉及多个方面,包括用户界面设计、性能优化、后台运行等。 - **设置圆角**:使用`layer.cornerRadius`属性来设置视图的圆角半径。 - **常用方法**:例如`[UIView animateWithDuration:delay:options:animations:completion:]`用于实现动画效果。 - **图片拉伸后模糊**:图片拉伸会导致模糊问题,可以使用`UIImage:stretchableImageWithLeftCapWidth:topCapHeight:`来创建拉伸图像,同时避免模糊。 - **使用自定义字体**:在Info.plist文件中添加字体文件,并使用`UIFont`的` fontWithName:size:`方法加载自定义字体。 - **后台运行**:通过实现相应的代理方法和配置来启用后台运行功能。 - **让程序退出后台时继续运行10分钟**:通过注册后台任务,可以在程序退出后台后继续执行指定任务一段时间。 - **UITableView**: - **设置Cell选中状态背景色**:可以通过设置`tableView.cellSelectionStyle = UITableViewCellSelectionStyleNone;`来移除默认选择样式,并自定义背景颜色。 - **获取table中控件的位置**:使用`indexPathForRowAtPoint:`方法获取当前触摸位置对应的索引路径。 - **使用flashScrollIndicators**:启用快速滚动指示器,提高用户体验。 - **点击Cell中的按钮时,获取Cell**:可以在`- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath`方法中获取选中的Cell。 - **_cmd**:在Objective-C中,`_cmd`是当前方法的隐式参数,用于获取方法签名等信息。 - **不停震动的方法**:使用`UIImpactFeedbackGenerator`来模拟设备震动反馈。 - **去掉app图标发光效果**:在`info.plist`文件中设置`UIApplicationExitsOnSuspend`为`YES`。 - **UIImage:stretchableImageWithLeftCapWidth:topCapHeight:**:创建可拉伸的UIImage,适用于按钮等元素。 - **UIPopoverController**:用于显示弹出视图控制器。 - **UIColor colorWithRed:green:blue:alpha:**:创建自定义颜色。 - **禁止textField和textView的复制粘贴菜单**:设置`isEditable`和`isSelectable`属性为`NO`。 - **loadView**:用于加载视图控制器的视图。 - **GestureRecognizer相关**:使用手势识别器来实现触摸事件处理。 - **进入App Store页面**:使用`[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/app/id?mt=8"]]`打开应用的App Store页面。 - **someview显示一段时间后自动消失**:利用`performSelector:withObject:afterDelay:`方法实现延迟隐藏。 - **使提示窗口在任何界面都能显示**:创建一个全屏的提示视图控制器,确保它可以在任何界面上层显示。 - **禁止程序运行时自动锁屏**:设置`[[UIApplication sharedApplication] setIdleTimerDisabled:YES]`来禁用屏幕自动锁定。 - **自定义UINavigationController的返回按钮**:通过重写`navigationItem.backBarButtonItem`来实现自定义返回按钮样式。 - **改变UIAlertView背景**:通过自定义UIAlertView的背景视图来改变背景颜色或图像。 - **浮动提示**:使用`MBProgressHUD`等第三方库实现浮动提示效果。 - **改变UITextField的背景**:可以通过设置`textField.background`来改变输入框的背景颜色或图像。 - **CALayer高清显示**:通过设置`layer.shouldRasterize = YES`和`layer.rasterizationScale = [UIScreen mainScreen].scale`来提高CALayer的显示质量。
pdf 文件大小:544.38KB