1、tap事件穿透(解决案:click事件代替 或者尝试fastclick框架)
或者尝试面办重写zepto绑定事件
/*************** 重写zepto on避免事件穿透 ******************/
(function() {
var INTERVAL_MIN = 500
var lastCalledTime = (new Date()).getTime()
function throttle(handler) {
return function() {
var curTime = (new Date()).getTime()
//两tap事件间隔于500
if(curTime - lastCalledTime >INTERVAL_MIN) {
lastCalledTime = curTime
handler.apply(this, arguments)
}
}
}
var oldOn = $.fn.on
$.fn.on = function( evt ){
if(evt === 'tap'){
var args = Array.prototype.slice.call(arguments)
var handlerIndex
for(var i = 0i <args.lengthi++) {
if(typeof args[i] === 'function') {
handlerIndex = i
break
}
}
args[handlerIndex] = throttle(args[handlerIndex])
this.on('click', function(e) {
e.preventDefault()
})
return oldOn.apply( this, args )
}
return oldOn.apply( this, arguments )
}
})()
解决原理:意义用户 *** 作500毫秒内连续触发两tap事件发现两tap事件间间隔于500毫秒则阻止第二tap事件
两副作用能修复问题
(1). 能穿透点a链接需要额外给a绑定tap事件js进行跳转
(2). trigger主触发候能问题
(3).解决跨页面穿透问题
2、fixed元素input框iosbug(考虑底部定高间加iScroll内容区域实现尾固定间内容滑UI交互布局)
3、离线缓存更新功必须刷新页面才能显示新修改(写全局监听updateready主帮用户刷新页面)
4、UC浏览器支持alert(建议用自通用d窗)
5、同zepto写选择器候层级深某些浏览器失效(节点classid命名合理配用规选择器串)
6、QQ浏览器SVG失效
7、chrome米自带手机浏览器发调试走代理(载chromebeta版)
注册消息
注册消息共分为四步。
(1)自定义消息集成自RCMessageContent
(2)遵循RCMessageCoding协议
RCMessageCoding 主要有三个功能:
摘要
(3) 内容摘要协议
协议原型:
RCMessageContentView 主要有一个功能:
设置消息摘要:
开发者在进行完自定义消息类后,需要在 SDK init 之后,注册此自定义消息类。
开发者可根据自己的业务需求是否需要显示用户信息来选择继承消息 Cell。
类名:
1
结构图:
控件需要添加在 baseContentView 上,建议在 baseContentView 上方预留 10
类名:
1
结构图:
控件需要添加在 messageContentView 上,根据需求在画 Cell 视图布局的时候调整 messageContentView 的 frame ,如果是接收方,只需要修改 messageContentView 的 width 和 height ,如果是发送方,需要修改 messageContentView 的 x 、 width 和 height 。
开发者需要在 Cell 的初始化中布局,并重写下面方法来返回 Cell 的 Size 。当显示自定义消息时,必须实现该方法来返回 Cell 的 Size 。
注册消息 Cell
SDK 需要开发者在会话页面注册您定义的消息 Cell 并绑定您的消息类型
①在自定义cell中添加tap点击事件,
②实现tap事件,在tap事件中判断代理是否实现了如下方法,
③调用SDK中的cell点击事件回调
在如上方法中添加自定义cell的点击事件
UITapGestureRecognizer*tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:selfaction:@selector(Actiondo:)][uiview addGestureRecognizer:tapGesture]
其实理解起来也很简单,就是新建一个UITapGestureRecognizer,这个是点击事件,再将这个事件加到uiview中,继承uiview的一般都有addGestureRecognizer这个方法。addGestureRecognizer方法就是用于添加点击事件的。
我们再定义一个Actiondo的响应方法。
-(void)Actiondo:(id)sender{}
将我们需要的动作添加在其中就可以了。
好了,UITapGestureRecognizer的使用就是这样了。赶快试一下吧!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)