斯坦福大学iOS开发教程:Lecture 5 - 自动旋转与手势识别

需积分: 10 1 下载量 175 浏览量 更新于2024-07-27 收藏 434KB PDF 举报
斯坦福大学iOS开发教程2011年秋Lecture 5主要涵盖了iOS应用开发中的多个关键概念和技术,包括内存管理、类方法与实例方法的调用、屏幕自动旋转、自定义UIView以及手势识别。 在这一讲座中,首先提到了关于上周四演示的一些补充,特别是关于内存管理中的“weak”和“strong”属性在声明@property时的选择。在Objective-C中,`@property (readonly) id program` 的属性设置,选择使用“weak”还是“strong”依赖于对象的生命周期和引用计数。如果对象不需要拥有对另一个对象的所有权,那么使用“weak”,否则使用“strong”。 接着讨论了在实例方法中调用类方法时,是使用`[CalculatorBrain]`还是`[[self class]]`。`[self class]`通常用于获取当前实例所属的类,这样可以确保即使在子类中,依然能正确调用到父类的类方法。 然后,课程讲解了设备自动旋转(Autorotation)的处理。当设备旋转时,你需要在控制器中实现`- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation`方法来决定是否允许用户界面跟随旋转。返回值决定了支持的界面方向,如只支持竖屏(UIInterfaceOrientationIsPortrait(orientation)),所有方向(return YES),或者排除某个特定方向(如不支持倒置的竖屏)。 此外,还涉及了自定义UIView如何响应bounds的变化。当屏幕旋转或视图大小调整时,自定义的UIView可能需要更新布局或内容。这通常通过重写`layoutSubviews`方法来完成,确保视图在新的尺寸下正确显示。 手势识别(GestureRecognizer)和处理触摸输入也是本次讲座的重点。手势识别允许开发者通过简单的触摸操作来实现复杂的交互。例如,你可以添加UITapGestureRecognizer来检测轻击、长按等手势,并相应地执行相应的动作。通过实现手势识别器的代理方法,可以精确控制这些手势的行为。 最后,讲师通过一个演示(Demo)展示了如何将这些技术结合在一起,创建一个带有手势识别的自定义UIView,以增加应用的交互性和用户体验。 这个讲座深入浅出地讲解了iOS开发中的重要概念,对于初学者和有经验的开发者来说,都是一个宝贵的资源,可以帮助他们更好地理解和实践iOS应用的开发。