5.7 针对UIView在frame/约束/旋转/缩放/圆角/各种手势的扩展 [iOS开发中的神兵利器]



1. 本节课将为您演示,针对视图类型的一些实用的扩展方法。首先在左侧的项目导航区,打开视图控制器的代码文件。


2. 接着开始编写代码,依次使用视图类型的各个扩展方法。


3. 首先在当前的类文件中,引入已经安装的第三方类库。


4. 添加一个方法,用来演示对视图类的初始化方法的扩展。


5. 通过设置视图对象的水平坐标、垂直坐标、宽度和高度信息,快速创建一个视图对象。


6. 设置视图对象的背景颜色为橙色。


7. 将视图对象添加到根视图,并在控制台输出视图的显示区域信息。


8. 通过设置视图对象的父视图,快速创建一个和父视图相同显示区域的子视图。


9. 设置视图的背景颜色为紫色,然后将视图添加到父视图中。


10. 使用相同的方式,创建第三个视图对象,额外设置父视图的内边距为20。


11. 设置视图的背景颜色为洋红色,然后将视图添加到指定的父视图中。


12. 在控制台输出子视图的显示区域。


13. 然后在视图加载完成的方法中,调用我们刚刚创建的自定义方法。接着点击左上角的[编译并运行]按钮,启动模拟器预览项目。


14. 当前页面上显示一个紫色背景的视图,其内边距为20,在紫色视图中,包含一个洋红视图。橙色视图的显示区域和紫色视图相同,所以被紫色视图所遮挡。


15. 接着点击右侧的垂直滚动条,跳转到编辑区的底部位置。


16. 添加另一个方法,该方法用来演示,如何快速获取视图的各个属性信息。


17. 首先初始化一个指定坐标和尺寸的视图对象。


18. 接着在控制台,依次输出视图对象的水平坐标和垂直坐标。


19. 然后依次输出视图对象的宽度和高度信息。


20. 依次输出视图对象的顶部位置和底部位置。


21. 输出视图对象的左侧位置和右侧位置。


22. 依次输出视图对象中心点的水平坐标和垂直坐标。


23. 输出视图对象的尺寸信息。


24. 设置视图的背景颜色为橙色,并将视图对象添加根视图中。


25. 如果需要调整视图的坐标和尺寸,我们只需重新设置视图的四个属性即可。


26. 此时视图的坐标和尺寸都被刷新,在控制台输出视图新的水平坐标的值。接着点击右侧的垂直滚动条,跳转到编辑区的顶部位置。


27. 修改此处方法的名称。


28. 接着点击左上角的[编译并运行]按钮,启动模拟器预览项目。


29. 模拟器启动之后,显示了一个橙色背景的视图对象。观察在底部的控制台,所输出的日志信息。然后点击此处的[停止]按钮,关闭模拟器。


30. 点击右侧的垂直滚动条,跳转到编辑区的底部位置。


31. 接着添加另一个方法。


32. 我们将在这个方法中,演示如何根据其它视图,确定另一个视图的位置和尺寸。


33. 首先初始化一个指定坐标和尺寸的视图对象。


34. 设置视图的背景颜色为灰色。


35. 接着初始化另一个视图对象,并设置该视图在水平方向上,位于上个视图右侧20点的位置。在垂直方向上,位于上个视图下方20点的位置。


36. 设置第二个视图的背景颜色为橙色。


37. 接着将两个视图,全部添加到根视图。然后点击右侧的垂直滚动条,跳转到编辑区的顶部位置。


38. 修改此处的方法名称。


39. 接着点击左上角的[编译并运行]按钮,启动模拟器预览项目。


40. 模拟器启动后,显示了两个视图对象,其中橙色视图在灰色视图的右下方,与灰色视图在水平和垂直方向,各偏移20点的距离。


41. 然后点击右侧的垂直滚动条,跳转到编辑区的底部位置。


42. 添加一个方法,用来演示视图之间的对齐。


43. 首先初始化一个指定坐标和尺寸的视图对象,并设置视图对象的背景颜色为紫色。


44. 初始化第二个指定坐标和尺寸的视图对象,并设置视图对象的背景颜色为橙色。


45. 接着将两个视图,全部添加到根视图。


46. 然后将第一个视图,在水平位置上和根视图保持居中。将第二个视图也在两个方向上和根视图保持居中。接着点击垂直滚动条,跳转到编辑区的顶部位置。


47. 修改此处的方法名称。


48. 接着点击左上角的[编译并运行]按钮,启动模拟器预览项目。


49. 模拟器启动后,显示了两个视图对象。紫色视图和根视图在水平方向上居中对齐。而橙色视图则在水平和垂直两个方向上,和根视图保持居中显示。


50. 然后点击右侧的垂直滚动条,跳转到编辑区的底部位置。


51. 添加一个方法,用来演示视图的旋转操作。


52. 首先初始化一个指定坐标和尺寸的视图对象。


53. 设置视图对象的背景颜色为橙色。


54. 设置视图对象沿着水平轴向,旋转45度。


55. 将视图对象添加到根视图。接着点击右侧的垂直滚动条,跳转到编辑区的顶部位置。


56. 修改此处的方法名称。


57. 接着点击左上角的[编译并运行]按钮,启动模拟器预览项目。


58. 模拟器启动后,显示了一个在水平方向上旋转45度的视图对象。点击此处的[停止]按钮,关闭模拟器。


59. 然后点击右侧的垂直滚动条,跳转到编辑区的底部位置。


60. 接着修改代码,将视图在屏幕的Z轴方向上旋转45度。


61. 接着点击右侧的垂直滚动条,跳转到编辑区的顶部位置。


62. 模拟器启动后,显示了一个在Z轴方向上旋转45度的视图对象。点击此处的[停止]按钮,关闭模拟器。


63. 接着添加另一个方法。


64. 该方法将用来演示视图的缩放操作。


65. 首先初始化一个指定坐标和尺寸的视图对象,该视图对象的宽度和高度都是100。


66. 设置视图对象的背景颜色为橙色。


67. 设置视图对象在水平方向上放大两倍,在垂直方向上放大四倍。


68. 将缩放后的视图对象,添加到根视图。接着点击右侧的垂直滚动条,跳转到编辑区的顶部位置。


69. 修改此处的方法名称。


70. 然后点击左上角的[编译并运行]按钮,启动模拟器预览项目。


71. 模拟器启动后,显示了一个在水平方向上放大两倍,在垂直方向上放大四倍的视图对象。点击此处的[停止]按钮,关闭模拟器。


72. 然后点击右侧的垂直滚动条,跳转到编辑区的底部位置。


73. 接着添加另一个方法。


74. 该方法将用来演示视图的圆角和边框操作。


75. 首先初始化一个指定坐标和尺寸的视图对象。


76. 接着设置视图的圆角半径为40。


77. 设置视图对象的背景颜色为橙色。


78. 然后设置视图对象的边框宽度为6,颜色为黑色,并将视图对象添加到根视图。接着点击右侧的垂直滚动条,跳转到编辑区的顶部位置。


79. 修改此处的方法名称。


80. 然后点击左上角的[编译并运行]按钮,启动模拟器预览项目。


81. 模拟器启动后,显示了圆角半径为40,边框宽度为6的视图对象。点击此处的[停止]按钮,关闭模拟器。


82. 然后点击右侧的垂直滚动条,跳转到编辑区的底部位置。


83. 接着修改此处的代码,仅给视图添加底部的边框。


84. 点击左上角的[编译并运行]按钮,再次启动模拟器预览项目。


85. 模拟器启动后,显示了一个底部边框宽度为20,边框颜色为红色的视图对象。点击此处的[停止]按钮,关闭模拟器。


86. 点击右侧的垂直滚动条,跳转到编辑区的底部位置。


87. 接着添加另一个方法。


88. 该方法将用来演示,如何给视图快速添加触摸手势。


89. 首先初始化一个指定坐标和尺寸的视图对象。


90. 设置视图对象的背景颜色为橙色。


91. 给视图对象添加一个触摸手势,并设置在一个代码块中,响应触摸的事件。


92. 当视图对象被点击时,在控制台输出相应的日志信息。


93. 将视图对象添加到根视图。接着点击右侧的垂直滚动条,跳转到编辑区的顶部位置。


94. 修改此处的方法名称。


95. 然后点击左上角的[编译并运行]按钮,启动模拟器预览项目。


96. 模拟器启动后,在此处的橙色视图上点击,并观察控制台的日志输出。


97. 此时在控制台输出了视图点击手势的日志信息。点击此处的[停止]按钮,关闭模拟器。


98. 然后点击右侧的垂直滚动条,跳转到编辑区的底部位置。


99. 接着修改代码,使用代理的方法,处理交互事件。


100. 视图的触摸事件,将由当前的控制器对象来处理。


101. 添加一个方法,响应视图的触摸事件。


102. 接着添加一个方法,演示如何给视图添加鼠标轻扫的手势。


103. 首先初始化一个指定坐标和尺寸的视图对象。


104. 设置视图对象的背景颜色为橙色。


105. 给视图对象添加一个轻扫手势,并设置在一个代码块中,响应触摸的事件。


106. 当视图对象被点击时,在控制台输出滑动手势的方向,以及鼠标的数目。


107. 将视图对象添加到根视图。接着点击右侧的垂直滚动条,跳转到编辑区的顶部位置。


108. 修改此处的方法名称。


109. 然后点击左上角的[编译并运行]按钮,启动模拟器预览项目。


110. 模拟器启动后,在此处的橙色视图上鼠标轻扫,并观察控制台的日志输出。


111. 此时在控制台,输出了视图上的轻扫手势的日志信息。点击此处的[停止]按钮,关闭模拟器。


112. 然后点击右侧的垂直滚动条,跳转到编辑区的底部位置。


113. 接着添加另一个方法。


114. 该方法将用来演示,如何给视图快速添加拖拽手势。


115. 首先初始化一个指定坐标和尺寸的视图对象,并设置视图对象的背景颜色为橙色。


116. 获得视图中心点的位置。


117. 给视图对象添加一个拖拽手势,并设置在一个代码块中,响应触摸的事件。


118. 当手势事件处于开始状态时,获得视图此时的中心点的位置。


119. 接着获得拖拽手势在视图中的移动距离。


120. 然后通过计算,获得视图在经过拖拽之后的目标位置。


121. 刷新视图中心点的坐标,从而改变视图的位置。


122. 将视图对象添加到根视图。接着点击右侧的垂直滚动条,跳转到编辑区的顶部位置。


123. 修改此处的方法名称。


124. 然后点击左上角的[编译并运行]按钮,启动模拟器预览项目。


125. 模拟器启动后,在上方的圆点处按下鼠标,并向下方拖动,移动视图的位置。


126. 此时视图被移至屏幕的右下角。点击此处的[停止]按钮,关闭模拟器。


127. 然后点击右侧的垂直滚动条,跳转到编辑区的底部位置。


128. 接着添加另一个方法。


129. 该方法将用来演示,如何给视图快速添加捏合手势。


130. 首先初始化一个指定坐标和尺寸的视图对象,并设置视图对象的背景颜色为橙色。


131. 给视图对象添加一个捏合手势,并设置在一个代码块中,响应触摸的事件。


132. 通过捏合手势的缩放比例,实时调整视图的显示比例。


133. 将视图对象添加到根视图。接着点击右侧的垂直滚动条,跳转到编辑区的顶部位置。


134. 修改此处的方法名称。


135. 然后点击左上角的[编译并运行]按钮,启动模拟器预览项目。


136. 模拟器启动后,在右上方的圆点处按下鼠标,并向左下方拖动,缩小视图的显示比例,并观察控制台的日志输出。


137. 视图被缩小至一个较小的尺寸,在控制台输出了,视图缩放过程中的比例日志。


138. 然后点击右侧的垂直滚动条,跳转到编辑区的底部位置。


139. 接着添加另一个方法。


140. 该方法将用来演示,如何给视图快速添加长按手势。首先初始化一个指定坐标和尺寸的视图对象,并设置视图对象的背景颜色为橙色。


141. 给视图添加一个长按手势,并设置在一个代码块中,响应触摸的事件。


142. 当视图被长按时,使视图左右晃动三次。


143. 并给视图添加一个阴影。


144. 将视图对象添加到根视图。接着点击右侧的垂直滚动条,跳转到编辑区的顶部位置。


145. 修改此处的方法名称。


146. 然后点击左上角的[编译并运行]按钮,启动模拟器预览项目。


147. 模拟器启动后,在视图的上方长按鼠标,并观察视图的变化。


148. 点击此处的[停止]按钮,关闭模拟器。


149. 然后点击右侧的垂直滚动条,跳转到编辑区的底部位置。


150. 接着添加另一个方法。


151. 该方法将用来演示,对按钮类型的扩展。


152. 使用扩展后的初始化语句,初始化一个按钮控件,并设置它的坐标、尺寸、目标和动作等属性。


153. 将按钮控件移动至根视图的中心位置。


154. 接着依次设置按钮控件,在正常状态和高亮状态时的背景颜色。




本文整理自:《app开发中的神兵利器》,真正的[手把手]教学模式,用最快的速度上手iOS开发,苹果商店App Store免费下载:https://itunes.apple.com/cn/app/id1209739676,或扫描本页底部的二维码。课程配套素材下载地址:资料下载

0