IOS移动开发从入门到精通 视图UIView、层CALayer(1)

UIView是UIKit框架里面最基础的视图类。UIView类定义了一个矩形的区域,并管理该矩形区域内的所有屏幕显示。

控件

image.png

1个UIWindow 或 UIView
1、设置背景色
import UIKit
class ViewController:UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view,typically from a nib.
let view = UIView(frame:CGRect(x:40, y:80,width:240, height:240))
view.backgroundColor = UIColor.black
view.clipsToBounds=true
self.view.addSubview(view)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}

以图片做背景

let view = UIView(frame:CGRect(x:40, y:80,width:240, height:240))
let image = UIImage(named:“Sample”)
view.backgroundColor = UIColor.init(patternImage:image!)
self.view.addSubview(view)

修改不透明度 view.alpha = 0.3

是否隐藏 view.isHidden=true

是否交互 userInteractionEnabled

设置边框:

view.layer.borderWidth = 20
view.layer.borderColor = UIColor.lightGray.cgColor

设置阴影:

view.layer.shadowColor = UIColor.black.cgColor
view.layer.shadowOffset = CGSize(width:10.0,height:10.0)
view.layer.shadowOpacity = 0.45
view.layer.shadowRadius = 5.0

设置圆角:view.layer.cornerRadius = 40

捕获用户触摸事件UITapGestureRecognizer(taget:self,action:#selector(ViewController.SingleTap))

import UIKit
class ViewController:UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view,typically from a nib.
let touchView = UIView(frame:CGRect(x:60, y:60,width:200, height:200))
touchView.backgroundColor = UIColor.black
self.view.addSubview(touchView)
let guesture = UITapGestureRecognizer(target:self,action:#selector(ViewController.SingleTap))
touchView.addGestureRecognizer(guesture)
}
func SingleTap()
{
print(“You touched me.”)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}


使用自定义视图:新建Swift File

import UIKit
class RoundView:UIView
{
var color = UIColor.blue
override init(frame:CGRect)
{
super.init(frame:frame)
self.backgroundColor = UIColor.clear
}
override func draw(_ rect:CGRect)
{
let ctx = UIGraphicsGetCurrentContext()
ctx?.clear(self.frame)
ctx?.setFillColor(color.cgColor)
ctx?.fillEllipse(in:CGRect(x:0, y:0, width:self.frame.width, height:self.frame.height))
}
required init?(coder aDecoder:NSCoder)
{
fatalError("init(coder:) has not been implemented")
}
}

在ViewController中调用

import UIKit
class ViewController:UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view,typically from a nib.
let view = RoundView(frame:CGRect(x:40, y:40,width:240, height:240))
self.view.addSubview(view)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}


设置渐变view

let rect = CGRect(x:20, y:60, width:240, height:240)
let gradientView = UIView(frame:rect)
let gradientLayer = CAGradientLayer()
gradientLayer.frame = gradientView.frame
let fromColor = UIColor.yellow.cgColor
let midColor = UIColor.blue.cgColor
let toColor = UIColor.red.cgColor
gradientLayer.colors = [fromColor, midColor, toColor]
gradientLayer.startPoint = CGPoint(x:0, y:0)
gradientLayer.endPoint = CGPoint(x:1, y:1)
gradientLayer.locations = [0, 0.3, 1]
gradientView.layer.addSublayer(gradientLayer)
self.view.addSubview(gradientView)

仿射变换:旋转,缩小,扩大等

image.png

视图嵌套

image.png

你可能感兴趣的:(IOS移动开发从入门到精通 视图UIView、层CALayer(1))