Open 1996GJ opened 2 years ago
??? 按钮的回调不会不触发的呀
按钮的回调就不触发了,每次回调的都是 LeeCloseComplete 这个了,我又封装了一层 .LeeAddAction(^(LEEAction *action) {
action.clickBlock = ^{
if (completion) {
completion(1);
}
};
})
.LeeCloseComplete(^{ // 关闭回调事件 if (completion) { completion(2); } }) 这样每次拿到的都是2 不管点击的按钮还是背景
这是来自Demo的代码, 你可以试试 打印是正常的... 值得注意的是 LeeCloseComplete回调会先于action的回调
[LEEAlert alert].config
.LeeTitle(@"这是一个alert 它有三个不同类型的action!")
.LeeAction(@"一个默认action", ^{
// 点击事件Block
NSLog(@"000");
})
.LeeDestructiveAction(@"一个销毁action", ^{
// 点击事件Block
NSLog(@"222");
})
.LeeCancelAction(@"一个取消action", ^{
// 点击事件Block
NSLog(@"111");
})
.LeeCloseComplete(^{
NSLog(@"333");
})
.LeeShow();
是的 问题就在于此,我想要 区分出来,点击背景关闭和点击按钮处理不同的方法,但是现在点击按钮后,会触发两次回调
我提供一个思路 方法内提供一个局部block变量, 这个block内调用completion(), 然后按钮回调和关闭回调调用这个block变量, 只要有一方调用了这个block变量 接下来就置空它, 另一个就调用不到了, 你可以将关闭回调的调用async一下 这样就变成了按钮回调优先.
这样就可以区分是按 钮点击关闭 还是 其他原因关闭 了
.LeeAddAction(^(LEEAction *action) { action.clickBlock = ^{
.LeeCloseComplete(^{ // 关闭回调事件
现在有这个问题,如果添加了下面的关闭回调事件,就不能触发 按钮的回调方法了,这样我就区分不了是点击背景关闭,还是点击按钮事件