【问题标题】:Will the program throw exception when it runs into the super remove line?程序运行到 super remove 行时会抛出异常吗?
【发布时间】:2014-07-21 10:22:38
【问题描述】:

removeFromSuperviewUIView 的选择器。而UIView的超类是UIResponder,所以如果程序运行到代码[super removeFromSuperview]UIResponder就无法识别选择器removeFromSuperView。所以我的问题是:它会抛出无法识别的异常吗?

   - (void)removeFromSuperview
{
    [UIView animateWithDuration:0.35f delay:0.0 options:UIViewAnimationOptionCurveEaseOut animations:^{
        self.frame = afterFrame;
        if (self.leftLeave) {
            self.transform = CGAffineTransformMakeRotation(-M_1_PI / 1.5);
        }else {
            self.transform = CGAffineTransformMakeRotation(M_1_PI / 1.5);
        }
    } completion:^(BOOL finished) {
        [super removeFromSuperview];
    }];
}

【问题讨论】:

标签: ios objective-c animation uiview


【解决方案1】:

我假设您在 UIView 的子类中编写此代码,因为这似乎是最有可能的情况。您可能已经注意到,它不会抛出异常,因为superUIView,而不是UIResponder

类层次结构是UIResponder -> UIView -> MyView

【讨论】:

    猜你喜欢
    • 2013-10-28
    • 2013-12-05
    • 1970-01-01
    • 2012-08-21
    • 2015-06-03
    • 2012-11-05
    • 2016-05-31
    • 2015-11-28
    • 2011-10-21
    相关资源
    最近更新 更多