好文档 - 专业文书写作范文服务资料分享网站

iphone开发秘籍

天下 分享 时间: 加入收藏 我要投稿 点赞

8.3秘诀:为按钮响应制作动画效果UIControl除了边框和目标操作外还有更多内容。所有的控件都继承自UIView类。这就意味着当你处理控件时,可以像处理标准视图时一样使用UIView动画块。秘诀8-3构建了一个切换开关,它使用UIViewAnimationTransitionFlipFromLeft旋转按钮,同时更改状态。与秘诀8-1不同,此代码不转换样式,而是转换按钮。共有两个按钮:一个开按钮和一个关按钮,它们都基于清晰的UIView。通过为这两个按钮提供一个透明的父视图,你能够仅为这些按钮应用翻转,而不包含用户界面的其余元素。忽略清晰的背景,并最终旋转整个窗口——这并不是好的UI选择。由于此秘诀使用了和上一个秘诀相同的半透明样式,因此任何时候在屏幕上只出现一个按钮是很重要的。要达到此目的,在动画块(animationblock)中时,当前按钮应该把自己从该清晰的超视图中移除。相反状态的按钮会取代它的位置。图8-3显示了翻转过程中的翻转按钮。图8-3使用UIView动画块在控件状态之间翻转。这里,按钮正在旋转,在关状态与开状态之间进行切换秘诀8-3将UIView动画块添加到控件8.4秘诀:定制开关重要的UIControl对象通常基于一系列子视图构建。通过导航某个控件的子视图树,你可以公开和定制通常不能从标准SDK中访问的对象。以开关为例,SDK只提供一种类型的开关:一个开/关按钮。要编辑该按钮使其转换为如图8-4所示(左边)的Yes/No按钮,只需要编写几行代码。图8-4(左边)通过向下导航对象(dumpsterdiving),你能够公开和自定义底层UISwitch视图。(右边)通过访问警告的子视图来为UIAlertView按钮着色这种定制依赖于对控件视图树的理解。代码清单8-3显示了如何探索该结构。向explode:level:发送一个控件对象,初始级别为0。该方法以递归的方式遍历树,依次呈现每个子视图。代码清单8-3探索UIControl视图结构发送开关时,explode会在Xcode控制台中创建以下结果。正如你所看到的,一个开关有一个子视图,即一个自定义UISwitchSlider对象。这里有4个子视图。3个图像用于创建背景和开关样式。一个视图拥有开关上使用的两个标签。因为这些标签是标准的UILabel实例,因此可以允许它们使用你提供的任何文本:知道如何设置视图后,就能够构建一个访问这些条目的UISwitch子类。秘诀8-4显示了添加标签文本定制的UICustomSwitch类实现。说明秘诀8-4中扩展的UISwitch类定义还显示了文档中未记录的setAlternateColors:调用,使你能够使用桔黄色背景而不是蓝色背景。有关在应用程序中使用文档中未记录的特性的讨论,请参见第1章。秘诀8-4向iPhone开关添加文本定制8.4.1定制UIAlertView按钮通过访问子视图,你可以定制许多类。图8-4(右边)显示了一个带有自定义按钮的UIAlertView。被着色为红色时,它指示可以在UIActionSheet破坏性按钮中找到的相同类型的危险。这是危险信号。着色过程是不一致的。因为UIAlertView是一个文档中未记录的按钮类,它不响应标准的tintColor调用。你必须为按钮设置背景颜色。这就意味着颜色会渗过按钮边缘。幸运的是,渗漏很轻微,只有挂饰(pendant)才需要避免此方法。这里的教训是使用非标准SDK类时要小心。它们中的许多类都可以使用drawRect:调用来呈现,但不允许对自身的完全定制。代码清单8-4使用了willPresentAlertView:委托方法。此方法使警告能够在定制按钮之前完成自身的构建。警告视图和动作表(以及大多数栏类)不会完全地构建它们的组件视图,直到它们出现在屏幕上之前。等待使得子视图能够在被修改之前和在屏幕上被呈现给用户之前完成对自身的构建。代码清单8-4为UIActionSheet按钮着色8.5秘诀:添加自定义滑块缩略图要保持修改控件元素的主题,需要知道许多控件都提供了公共定制。例如,通过UISlider类,能够更改其缩略图组件的外观,而不需要搜索整个子视图结构。通过调用setThumbImage:forState:方法将此缩略图设置为你喜欢的任何图像。下一个秘诀将重点从搜索正确的视图转到了动态定制上。它将动态地构建滑块样式。秘诀8-5构建了一个滑块,其缩略图可以动态地改变。在本例中,缩略图的亮度直接和当前滑块的值联系在一起。当用户操作滑块时,CreateImage例程在运行时构建滑块。CoreGraphics调用构建图8-5所示的样例图像。内部圆形的亮度被设置为滑块的值。图8-5CoreGraphics调用使此滑块的缩略图能根据当前滑块的值变暗或变亮这种类型的反馈可以基于任何类型的数据。你可以从机载传感器中获取值或向因特网发出呼叫。不管你使用的是什么样的在线更新方案,动态更新显然是图形密集的,不过它不会太昂

iphone开发秘籍

8.3秘诀:为按钮响应制作动画效果UIControl除了边框和目标操作外还有更多内容。所有的控件都继承自UIView类。这就意味着当你处理控件时,可以像处理标准视图时一样使用UIView动画块。秘诀8-3构建了一个切换开关,它使用UIViewAnimationTransitionFlipFromLeft旋转按钮,同时更改状态。与秘诀8-1不同,此代码不转换样式,而是转换按钮。共有两个按钮:一
推荐度:
点击下载文档文档为doc格式
6uvwj9xedm7b8vd53zk1
领取福利

微信扫码领取福利

微信扫码分享