时间:2015-04-27 来源:

iOSSDK详解之IBInspectable和IB_DESIGNABLE-Storyboad动态刷新 【编程语言】

原创Blog,转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS-SDK详解专栏,web外包在这里你能找到很多iOS开发基础的文章 http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html

前言: 在做应用的UI设计的时候,html前端制作如果属性能够在Interface Builder的图形化界面进行设置,div页面并且动态的预览到效果,承接网页前端外包那样无疑会大大提高应用的开发效率.而XCode为我们提供了这样的一种方式网页html切图排版,就是使用IBInspectable和IB_DESIGNABLE 如图

@property (nonatomic) IBInspectable CGFloat cornerRadius; .m文件实现对应set的方法

如果不能动态刷新,网页html切图排版如果还不能刷新,html切图报价建议开启Automatically Refresh Views

例如为imageView的继承类设置cornerRadius 头文件添加属性

不容易调试和后期维护

IBInspectable 让支持KVC的属性能够在Attribute Inspector中配置. 不熟悉KVC的童鞋可以看看我这篇文章 ios SDK详解之KVC

#import <UIKit/UIKit.h> IB_DESIGNABLE @interface IBDesigbableImageview : UIImageView @end 然后web外包,再设置imageview为继承类,web外包并且设置圆角 可以看到网页切图制作,storyboard上的imageview动态刷新了

IB_DESIGNABLE IB_DESIGNABLE的宏的功能就是让XCode动态渲染出该类图形化界面. 使用方式,网页切图制作把该宏加在自定义类的前面

User Defined Rumtime Attributes 通过User Defined Rumtime Attributes可以在Interface Builder中div+css+js切图,设置一些KVC属性的值.例如 设置圆角为50 这样,网页重构报价在运行模拟器承接网站前端,会有如下效果 不过,承接网站前端这样做有明显的弊端

.h文件

官网关于这部分的链接 https://developer.apple.com/library/ios/recipes/xcode_help-IB_objects_media/Chapters/CreatingaLiveViewofaCustomObject.html 我的Github这个项目的链接psd切图html,欢迎关注这个项目 https://github.com/wenchenhuang/IBInspectableAndIBDesignableDemo

#import <UIKit/UIKit.h> IB_DESIGNABLE @interface IBDesigbableImageview : UIImageView @property (nonatomic) IBInspectable CGFloat cornerRadius; @end .m文件

-(void)setCornerRadius:(CGFloat)cornerRadius{ _cornerRadius = cornerRadius; self.layer.cornerRadius = cornerRadius; self.layer.masksToBounds = cornerRadius > 0?true:false; } 这样,psd切图html在Attribute Inspector就会多出一个配置选项 通过设置这个选项web外包,就可以设置layer的圆角了. 每次设置圆角,div切图排版都会在Identity Inspector中改变一个rumtime的KVC变量 不过网页切图制作,现在仍然不能动态刷新

#import "IBDesigbableImageview.h" @implementation IBDesigbableImageview -(void)setCornerRadius:(CGFloat)cornerRadius{ _cornerRadius = cornerRadius; self.layer.cornerRadius = cornerRadius; self.layer.masksToBounds = cornerRadius > 0?true:false; } @end 效果就是最开始的Demo

添加属性以及Set方法即可,网页切图制作如果是现有类div+css+js切图,使用Category

通过IB_DESIGNABLE配合IBInspectable可以实现动态刷新 实现方式很简单,手机网页外包就是在自定义类的头文件处加上这个宏定义即可.然后把对应的类设置为自定义的类.

CSDN上传的资源暂时没有更新承接网站前端,要源代码的童鞋直接去GitHub下载

$(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

点击次数:2687
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日win2003硬盘权限设置2014年01月29日js原生appendChild的bug解决心得分享2014年01月29日cocos2d中分步实现飞机大战----自己飞机的实现【Web前端】2015年03月10日Boostcpu_timer学习笔记 【编程语言】2015年08月07日hdu1711NumberSequenceKMP模板题~~~ 【移动开发】2015年04月03日TIOBE2012年2月编程语言排行榜:C#力压C++ ,,2016年06月23日Mongodb基础入门(3)——排序和索引 【综合】2015年01月04日百度地图key申请以及基础地图的演示【综合】2015年07月28日支付业务的优化(命令模式的应用)2016年06月23日BestCoderRound#32【架构设计】2015年03月09日java版的单向链表的基本操作 【编程语言】2014年11月07日PHP开源CMS系统Cotonti ,,2016年06月29日CSS之自动换行2014年01月29日网络攻防之SQL注入攻击 【编程语言】2015年06月18日Java为何大行其道2015年07月09日用javascriptcss实现GridView行背景色交替、鼠标划过行变色,点击行变色选中2014年01月29日delpi2007inx64os(win78),经常出现bordbk105N.dll错误 【数据库】2015年08月29日ASP.NET水晶报表打印功能实现代码2014年01月29日Android百日程序:Fragment动态管理和生命期【数据库】2015年01月04日BZOJ1295SCOI2009最长距离SPFA 【综合】2014年11月04日【D3.js高级系列—8.0】标线 【架构设计】2015年06月17日Cocos2d-x结构学习(四)CCLayer、CCApplicationProtocol、CCApplication 【移动开发】2015年03月27日php常量【编程语言】2015年07月30日【HDU5316】Magician(线段树)【移动开发】2015年07月31日JavaScript触发器详解2014年01月29日4款Web开发者有用的Chrome扩展 1,收藏 ,,2016年06月23日解析php中两种缩放图片的函数,为图片添加水印2014年01月29日【AllwinnerClassA20类库分析】9.WatchDog类的使用 【编程语言】2015年01月30日HDU5294TricksDevice(2015MUT#1最短路建图+最小割) 【Web前端】2015年08月25日iOSApp瘦身法之图片 【移动开发】2015年03月02日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)