想要玩弄这两个attribute
,就得对他们有所了解,否则玩得不尽兴,因为很有可能你设置了这两个属性不支援的型别,所以无法显示在属性检阅器让你玩。
IBInspectable
可以支援的型别有「Int
、CGFloat
、Double
、String
、Bool
、CGPoint
、CGSize
、CGRect
、UIColor
、UIImage
」,如果你设置的型别不是这些型别的话,那属性检阅器将不会产生。
顺带一提,这些型别的资讯我是查阅AppCoda的书才找到的,我找不到官方文档,希望有知道的高手帮我解惑一下官方文档有无这些资讯。
感谢ytyubox
大大的解答,已经在Documentation Archive内找到了:
这次我打算实作一颗按钮而已,因为这个按钮会了,其他的东西也就都会了,我以Apple
的按钮为例,当然这个按钮在实际上架中肯定会因为违反他们的人机介面指南而被挡下来的,所以只是示范用,直接上图:
其他功能在上一篇都讲过了,所以这次我打算讲渐层的功能,并且用StoryBoard
来控制这些颜色跟是否启用渐层功能。
@IBInspectable var 是否产生渐层: Bool = false
@IBInspectable var 渐层开始颜色: UIColor = UIColor.black
@IBInspectable var 渐层中间颜色: UIColor = UIColor.clear
@IBInspectable var 渐层结束颜色: UIColor = UIColor.white
我宣告了四个属性,相信你们肯定看得懂的。
然後建立一个渐层图层,设定大小,并且设定颜色以及开始跟结束的位置:
func creatGradient()
{
if 是否产生渐层
{
let gradientLayer = CAGradientLayer()
gradientLayer.frame = self.bounds
gradientLayer.colors = [渐层开始颜色.cgColor ,渐层中间颜色.cgColor, 渐层结束颜色.cgColor]
gradientLayer.startPoint = CGPoint(x: 0, y: 0)
gradientLayer.endPoint = CGPoint(x: 1, y: 1)
self.layer.insertSublayer(gradientLayer, at: 0)
}
}
这边有两点需要注意的:
1:如果没有设置开始跟结束的位置,则是预设从上到下的渐层模式
2:在设置颜色的时候,使用UIColor.cgColor属性,否则设置无效
将creatGradient
放在layoutSubviews()
内,这边需要注意的是要记得呼叫super.layoutSubviews
:
override func layoutSubviews() {
super.layoutSubviews()
creatGradient()
}
接下来可以到属性检阅器点选想要的属性设置了,需要注意到较旧版本的Xcode
无法即时显示渐层功能,需要运行模拟器才看得到:
以上就完成了,另外在这次设置的过程中,发现一件算是有坑的事情,在这里面处理许久才发现为什麽,明天再跟大家分享。
<<: Day27_渗透 Burp Suite-Intruder Positions
(二)风险分析 ISO 27005从一开始就强调不是方法论,此标准只是资讯安全风险管理指引,所以方法...
作为正式开始的第一篇要来讲的是很基础的网页切版和怎麽去看网页中有哪些元件,会分两部分: 网页微切版...
Course Schedule I的延伸,这次要排出课程顺序。 思路 有大概想到去找node的顺序跟...
铁人赛到今天终於30天了,最後就来分享一下自己在现在平台学习的感想以及选择课程内容的技巧吧 课程选择...
自我学习过程 5年前透过学校老师的介绍,重新再次认识及了解Odoo,印象中那时 Open ERP 己...