Skip to content

如果BHBItem添加过多(9个)的话,移除动画的时候会出现事件无法传递,报unexpected nil window in __dispatchPreprocessedEventFromEventQueue的问题 #12

Open
@SenorSamuel

Description

@SenorSamuel

移除动画时,BHBItem过多,completed的时候self.superview.superview== nil
以下是我的解决方法,请勿见笑


- (void)removeAnimation{
    [self.visableBtnArray enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
        BHBCustomBtn * btn = obj;
        CGFloat x = btn.frame.origin.x;
        CGFloat y = btn.frame.origin.y;
        CGFloat width = btn.frame.size.width;
        CGFloat height = btn.frame.size.height;
        UIView *containerView = self.superview.superview;
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)((self.visableBtnArray.count - idx) * 0.03 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [UIView animateWithDuration:.5 delay:0 usingSpringWithDamping:0.9 initialSpringVelocity:5 options:0 animations:^{
                btn.alpha = 0;
                btn.frame = CGRectMake(x, [UIScreen mainScreen].bounds.size.height - self.frame.origin.y + y, width, height);
            } completion:^(BOOL finished) {
                if ([btn isEqual:[self.visableBtnArray firstObject]]) {
//                    self.superview.superview.userInteractionEnabled = YES;
                    containerView.userInteractionEnabled = YES;(改成这行)
                }
            }];
        });

    }];

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions