storyboard 开启实时渲染
2016-03-11 15:35
417 查看
在开发中,我们经常会遇到这样的需求,把图片、button设置成圆角的。通常会这么做:
现在有一种新的做法,就是开启storyboard 的实时渲染效果
新建一个工程,选择swift语言
将一个UIView 拖入到viewcontroller 中,添加好约束后,在viewcontroller中添加以下代码
再来storyboard中看看
我们发现attributes inspector中多了一个属性
可以看到attributes inspector 中多了一个corner radius属性,然后设置一个数字,可以看到storyboard中对应的图片编程圆角的了。这样我们就可以在storyboard中实时预览效果了,但这样有个弊端,我们加的所有view 都是圆角的啦,
我只想给这个特定view加一个圆角
好吧,怎么做呢
新建一个文件,继承UIImageView
import UIKit
@IBDesignable
class RoundImageView:
UIImageView {
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
}
*/
@IBInspectable
var cornerRadius:CGFloat =
0 {
didSet{
layer.cornerRadius =
cornerRadius;
layer.masksToBounds =
cornerRadius > 0;
}
}
@IBInspectable
var borderWidth:CGFloat =
0 {
didSet{
layer.borderWidth =
borderWidth;
}
}
@IBInspectable
var borderColor :UIColor?{
didSet{
layer.borderColor =
borderColor?.CGColor;
}
}
}
这样,我们在storyboard中将我们要设置圆角的那个view 的identity inspector 中class 设置成RoundImageView,再来看看效果
这样是不是更好看呢。
imageView.layer.cornerRadius = newValue; imageView.layer.masksToBounds = yes这样是设置好了,但是在运行之后我们才能看到效果,要看设置的漂不漂亮还得安装到手机运行起来才能看到。
现在有一种新的做法,就是开启storyboard 的实时渲染效果
新建一个工程,选择swift语言
将一个UIView 拖入到viewcontroller 中,添加好约束后,在viewcontroller中添加以下代码
extension UIView { @IBInspectable var cornerRadius:CGFloat{ get{ return layer.cornerRadius; } set{ layer.cornerRadius = newValue; layer.masksToBounds = (newValue > 0); } } }
再来storyboard中看看
我们发现attributes inspector中多了一个属性
可以看到attributes inspector 中多了一个corner radius属性,然后设置一个数字,可以看到storyboard中对应的图片编程圆角的了。这样我们就可以在storyboard中实时预览效果了,但这样有个弊端,我们加的所有view 都是圆角的啦,
我只想给这个特定view加一个圆角
好吧,怎么做呢
新建一个文件,继承UIImageView
import UIKit
@IBDesignable
class RoundImageView:
UIImageView {
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
}
*/
@IBInspectable
var cornerRadius:CGFloat =
0 {
didSet{
layer.cornerRadius =
cornerRadius;
layer.masksToBounds =
cornerRadius > 0;
}
}
@IBInspectable
var borderWidth:CGFloat =
0 {
didSet{
layer.borderWidth =
borderWidth;
}
}
@IBInspectable
var borderColor :UIColor?{
didSet{
layer.borderColor =
borderColor?.CGColor;
}
}
}
这样,我们在storyboard中将我们要设置圆角的那个view 的identity inspector 中class 设置成RoundImageView,再来看看效果
这样是不是更好看呢。
相关文章推荐
- ubuntu iptables设置
- Android横竖屏切换总结
- iOS8系统H264视频硬件编解码说明
- AS gradle命令打包apk
- PAT (Advanced Level) Practise 1040 Longest Symmetric String (25)
- Windows怎么管理开机启动项?开机启动项设置教程
- 判断Android程序是否在后台中运行
- u盘禁用
- 了解和熟悉操作系统
- JAVA socket编程
- matlab的默认打开路径
- 球龄对GmSc效率值的单因素方差分析
- C#中的Dictionary字典类介绍
- iOS 通过(lame)将录制音频转换成Mp3
- 大数相乘
- DEBUG:mysql数据库绿色版设置初始密码
- VCL 中文man page(1)
- 单例模式
- 为你的PHP程序选择合适的密码库(初稿)
- 开发中碰到的问题:java.lang.NoClassDefFoundError: com.baidu.location.LocationClient的解决办法