覆盖不UITableView的滚动 - iOS设备(Overlay not scrolling w

2019-07-29 06:30发布

我有一个使用下面的方法来调用加载覆盖要到下一个画面,当一个UITableView类。 问题是,这个加载屏幕不会在列表中滚动......所以,如果您滚动一点点,然后点击东西,加载屏幕没有显示(因为它是在顶部)。 我怎样才能加载屏幕停留在UITableView的顶部在任何时候? 请知道每个UITableView中包含一个UINavBar,其中包含中的UITabBar一样内内。 这里是我的代码:

-(void)createLoadScreen
{
    CGRect screenRect = [self.view bounds];
    CGRect overlayFrame = CGRectMake(0.0, 0.0, screenRect.size.width, screenRect.size.height);
    overlay = [[UIView alloc] initWithFrame:overlayFrame];
    overlay.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.7];
    CGRect frame = CGRectMake(screenRect.size.width / 2 - 25.0, screenRect.size.height / 2 - 70, 25.0, 25.0);
    loading = [[UIActivityIndicatorView alloc] initWithFrame:frame];
    [loading setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhiteLarge];
    [loading sizeToFit];
    loading.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin |
                                UIViewAutoresizingFlexibleRightMargin |
                                UIViewAutoresizingFlexibleTopMargin |
                                UIViewAutoresizingFlexibleBottomMargin);
    loading.hidesWhenStopped = YES;
    [overlay addSubview:loading];
}

-(void)showActivityIndicator
{ 
    [self.view addSubview:overlay];
    [loading startAnimating];
}

-(void)removeActivityIndicator {
    [loading stopAnimating];
    [overlay removeFromSuperview];
}

Answer 1:

您是否使用一个UITableViewController?

您应该能够通过将覆盖视图表中的上海华而不是表视图本身来解决您的问题。 这样,你的覆盖实际上是上面和独立从滚动表视图

-(void)showActivityIndicator
{ 
    [[self.view superview] addSubview:overlay];
    [loading startAnimating];
}


文章来源: Overlay not scrolling with UITableView - iOS