iOS10 UI教程视图的绘制与视图控制器和视图

iOS10 UI视图的绘制

iOS10 UI教程视图的绘制与视图控制器和视图,在iOS中,有很多的绘图应用。这些应用大多是在UIView上进行绘制的。如果想在一个UIView中绘制一个图形,需要写一个扩展UIView的子类,并重写draw(_:)方法。在该方法中实现绘图操作,程序会自动调用此方法进行绘图。

【示例1-11:ViewDrawing】以下将在视图上绘制一个椭圆。具体的操作步骤如下:

(1)创建一个基于UIView的类文件,命名为ellipseView。

(2)打开ellipseView.swift文件,编写代码,实现椭圆的绘制。

import UIKit

class ellipseView: UIView {

    override func draw(_ rect: CGRect) {

        let path = UIBezierPath(ovalIn: self.bounds)

        UIColor.red.setStroke()

        UIColor.orange.setFill()

        path.fill()

        path.stroke()

    }

}

  

(3)打开Main.storyboard文件,选择主视图,在Show the Identity inspector面板中找到Class,将其设置为刚才创建的类即ellipseView。此时运行程序,会看到如图1.28所示的效果。

 

图1.28  运行效果

注意:如果开发者想要进行重绘,重绘操作仍然在draw(_:)方法中完成,但是苹果不建议直接调用draw(_:)方法,如果强直直接调用此方法,是没有效果的。苹果要求开发者调用UIView类中的setNeedsDisplay()或者是setNeedsDisplay(_:)方法,则程序会自动调用draw(_:)方法进行重绘。

iOS10 UI视图控制器和视图

在一个应用中,如果视图很多时,为了方便关联,可以使用视图控制器。视图控制器的功能就是对iOS应用程序的视图进行管理。视图控制器使用UIViewController实现。UIViewController的view属性是层次结构的根视图,它定义了视图控制器的内容。

iOS10 UI教程视图的绘制与视图控制器和视图

相关阅读:iOS10 UI教程视图调试

iOS10 UI教程视图的绘制与视图控制器和视图的更多相关文章

  1. iOS10 UI教程视图的生命周期

    iOS10 UI教程视图的生命周期 说到视图的生命周期一般都是指视图控制器的视图生命周期.在视图的声明周期中最主要的有8个方法,分别为loadView().viewDidLoad().viewWill ...

  2. iOS10 UI教程视图的边界与视图的框架

    iOS10 UI教程视图的边界与视图的框架 iOS10 UI视图的边界 在视图的几何形状中我们提到了视图属性中的一部分属性可以将定义的视图绘制在屏幕上.其中典型的3个属性为边界属性.框架属性以及中心位 ...

  3. iOS10 UI教程视图的几何形状

    iOS10 UI教程视图的几何形状 视图属性中的一部分属性可以让定义的视图绘制在屏幕上.在讲解这些属性前,我们首先将讲解,定义视图的几何形状所涉及到的结构类型.这些结构类型如下: CGPoint:它表 ...

  4. iOS10 UI教程视图调试

    iOS10 UI教程视图调试 iOS10 UI教程视图调试,当视图很复杂的时候,层次结构就不会很简单了.Xcode可以通过视图(View)调试帮助开发者解决层次结构复杂的问题.视图调试是在Xcode ...

  5. iOS10 UI教程视图和子视图的可见性

    iOS10 UI教程视图和子视图的可见性 iOS10 UI教程视图和子视图的可见性,一个父视图可以通过clipsToBounds属性,定义子视图在边界(边界就是父视图的框架也就是父视图可以显示的范围) ...

  6. iOS10 UI教程子视图和父视图UI层次结构和Views继承

    iOS10 UI教程子视图和父视图UI层次结构和Views继承 iOS10 UI教程子视图和父视图UI层次结构和Views继承,本节将讲解与UI层次结构和Views继承相关的内容,其中包括子视图和父视 ...

  7. iOS10 UI教程视图的中心位置

    iOS10 UI教程视图的中心位置 center表示的是视图的中心位置属性,这个属性在相对的UI层次结构上工作,和frame类似.center属性是一个在父视图上定义视图的位置的简便方法.center ...

  8. iOS10 UI教程禁用视图与用户的交互

    iOS10 UI教程禁用视图与用户的交互 在上文中我们提到了使用isHidden属性和alpha属性可以使视图与用户的交互被禁用,除此之外此功能还可以使用UIView的isUserInteractio ...

  9. iOS10 UI教程基改变视图的外观与视图的可见性

    iOS10 UI教程基改变视图的外观与视图的可见性 视图是应用程序的界面,是用户在屏幕上看到的对象.用户可以通过触摸视图上的对象与应用程序进行交互,所以视图界面的优劣会直接影响到了客户体验的好坏.和视 ...

随机推荐

  1. Android异步加载访问网络图片-解析json

    来自:http://www.imooc.com/video/7871 推荐大家去学习这个视频,讲解的很不错. 慕课网提供了一个json网址可以用来学习:http://www.imooc.com/api ...

  2. 【python】lxml中多个xml采用相同节点时出现的问题

    今天突然发现了一个lxml的坑. 假设我们有一个节点 <id>123</id> 有两个父节点都要用上述节点,则必须把上面的节点写两遍!用同一个会出错! 出错例子: #!/usr ...

  3. POJ 2965 The Pilots Brothers' refrigerator

    题目链接 题意:一个冰箱上有4*4共16个开关,改变任意一个开关的状态(即开变成关,关变成开)时,此开关的同一行.同一列所有的开关都会自动改变状态.要想打开冰箱,要所有开关全部打开才行. 输入:一个4 ...

  4. php 与 js 正则匹配

    php : <?php $str='<p>xxx</p>abc';$matches = array();if(preg_match('/<p>.*<\/ ...

  5. August 30th 2016 Week 36th Tuesday

    If you keep on believing, the dreams that you wish will come true. 如果你坚定信念,就能梦想成真. I always believe ...

  6. mongodb3.x版本用户管理方法

    db.auth() 作用:验证用户到数据库. 语法: db.auth( { user: <username>, pwd: <password>, mechanism: < ...

  7. java链式编程设计

    一般情况下,对一个类的实例和操作,是采用这种方法进行的: Channel channel = new Channel(); channel.queueDeclare(QUEUE_NAME, true, ...

  8. C#中的变量及命名规则

    变量: 1.作用 :可以让我们在计算机中存储数据 2.语法:变量类型    变量名=赋值: 3.常用的数据类型:  int   整数类型  取值范围:最大2147483647;最小-214748364 ...

  9. 柔性数组 data[0]

    struct MyData {    int nLen;    char data[0];}; 在结构中,data是一个数组名:但该数组没有元素:该数组的真实地址紧随结构体MyData之后,而这个地址 ...

  10. 20145206邹京儒《Java程序设计》第7周学习总结

    20145206 <Java程序设计>第7周学习总结 教材学习内容总结 第十三章 时间与日期 13.1.1 时间的度量 ·即使标注为GMT(格林威治时间),实际上谈到的的是UTC(Unix ...