IOS 開發(fā)之swift中UIView的擴展使用的實例
更新時間:2017年09月12日 14:40:43 作者:番薯大佬
這篇文章主要介紹了IOS 開發(fā)之swift中UIView的擴展使用的實例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
IOS 開發(fā)之swift中UIView的擴展使用的實例
擴展類代碼:
import UIKit
extension UIView
{
// MARK : 坐標(biāo)尺寸
var origin:CGPoint {
get {
return self.frame.origin
}
set(newValue) {
var rect = self.frame
rect.origin = newValue
self.frame = rect
}
}
var size:CGSize {
get {
return self.frame.size
}
set(newValue) {
var rect = self.frame
rect.size = newValue
self.frame = rect
}
}
var left:CGFloat {
get {
return self.frame.origin.x
}
set(newValue) {
var rect = self.frame
rect.origin.x = newValue
self.frame = rect
}
}
var top:CGFloat {
get {
return self.frame.origin.y
}
set(newValue) {
var rect = self.frame
rect.origin.y = newValue
self.frame = rect
}
}
var right:CGFloat {
get {
return (self.frame.origin.x + self.frame.size.width)
}
set(newValue) {
var rect = self.frame
rect.origin.x = (newValue - self.frame.size.width)
self.frame = rect
}
}
var bottom:CGFloat {
get {
return (self.frame.origin.y + self.frame.size.height)
}
set(newValue) {
var rect = self.frame
rect.origin.y = (newValue - self.frame.size.height)
self.frame = rect
}
}
// MARK: - 位移
// 移動到指定中心點位置
func moveToPoint(point:CGPoint) -> Void
{
var center = self.center
center.x = point.x
center.y = point.y
self.center = center
}
// 縮放到指定大小
func scaleToSize(scale:CGFloat) -> Void
{
var rect = self.frame
rect.size.width *= scale
rect.size.height *= scale
self.frame = rect
}
// MARK: - 毛玻璃效果
// 毛玻璃
func effectViewWithAlpha(alpha:CGFloat) -> Void
{
let effect = UIBlurEffect.init(style: UIBlurEffectStyle.Light)
let effectView = UIVisualEffectView.init(effect: effect)
effectView.frame = self.bounds
effectView.alpha = alpha
self.addSubview(effectView)
}
// MARK: - 邊框?qū)傩?
// 圓角邊框設(shè)置
func layer(radius radius:CGFloat, borderWidth:CGFloat, borderColor:UIColor) -> Void
{
if (0.0 < radius)
{
self.layer.cornerRadius = radius
self.layer.masksToBounds = true
self.clipsToBounds = true
}
if (0.0 < borderWidth)
{
self.layer.borderColor = borderColor.CGColor
self.layer.borderWidth = borderWidth
}
}
// MARK: - 翻轉(zhuǎn)
// 旋轉(zhuǎn) 旋轉(zhuǎn)180度 M_PI
func viewTransformWithRotation(rotation:CGFloat) -> Void
{
self.transform = CGAffineTransformMakeRotation(rotation);
}
// 縮放
func viewScaleWithSize(size:CGFloat) -> Void
{
self.transform = CGAffineTransformScale(self.transform, size, size);
}
// 水平,或垂直翻轉(zhuǎn)
func viewFlip(isHorizontal:Bool) -> Void
{
if (isHorizontal)
{
// 水平
self.transform = CGAffineTransformScale(self.transform, -1.0, 1.0);
}
else
{
// 垂直
self.transform = CGAffineTransformScale(self.transform, 1.0, -1.0);
}
}
}
使用效果圖:

使用示例:
let imageView = UIImageView.init(frame: CGRectMake(10.0, 10.0, 60.0, 60.0))
self.view.addSubview(imageView)
imageView.image = UIImage(named: "header")
imageView.backgroundColor = UIColor.colorRandom()
imageView.left = 100.0
imageView.top = 100.0
imageView.size = CGSizeMake(100.0, 100.0)
imageView.moveToPoint(CGPointMake(100.0, 100.0))
imageView.scaleToSize(2.0)
imageView.effectViewWithAlpha(0.6)
imageView.layer(radius: 3.0, borderWidth: 1.0, borderColor: UIColor.redColor())
imageView.viewFlip(false)
imageView.viewTransformWithRotation(5.0)
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本的支持!
相關(guān)文章
iOS開發(fā)教程之UIRefreshControl使用的踩坑指南
UIRefreshControl是iOS6自帶的UITableView下拉刷新控件。下面這篇文章主要給大家介紹了關(guān)于iOS開發(fā)教程之UIRefreshControl使用的踩坑指南,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
iOS App開發(fā)中的UISegmentedControl分段組件用法總結(jié)
UISegmentedControl主要被用來制作分頁按鈕或添加跳轉(zhuǎn)到不同位置的標(biāo)簽,這里我們就來看一下iOS App開發(fā)中的UISegmentedControl分段組件用法總結(jié),需要的朋友可以參考下2016-06-06
IOS 中l(wèi)oadView,viewDidLoad,viewDidUnload詳解及使用
這篇文章主要介紹了IOS 中l(wèi)oadView,viewDidLoad,viewDidUnload詳解及使用的相關(guān)資料,需要的朋友可以參考下2017-02-02
Objective-C中類和方法的定義以及協(xié)議的使用
這篇文章主要介紹了Objective-C中類和方法的定義以及協(xié)議的使用,配合Mac下的Xcode IDE進行講解,需要的朋友可以參考下2016-01-01
iOS中利用CoreAnimation實現(xiàn)一個時間的進度條效果
在iOS中實現(xiàn)進度條通常都是通過不停的設(shè)置progress來完成的,這樣的進度條適用于網(wǎng)絡(luò)加載(上傳下載文件、圖片等)。下面通過本文給大家介紹iOS中利用CoreAnimation實現(xiàn)一個時間的進度條,需要的的朋友參考下吧2017-09-09

