UIScrollview Pull для обновления не работает

  self.refreshControl = [[UIRefreshControl alloc]init];
    [self.objDiscussiontopic addSubview:self.refreshControl];
    [self.refreshControl addTarget:self action:@selector(refreshTable) forControlEvents:UIControlEventValueChanged];

- (void)refreshTable {
    //TODO: refresh your data
    [self.refreshControl endRefreshing];
}

Это код, который я использую для добавления контроллера обновления в мое представление прокрутки. Но когда я опускаю прокрутку, элемент управления обновлением не отображается, и целевой метод также не вызывается, почему?

Я ищу это некоторое время, но не получил правильного ответа.

Еще одна вещь, прокрутка с ограничением VFL, что-то вроде этого:

//Pin scrolview to Parent View
    [VFLConstraint allignSubViewViewHorizentallyWithSubView:self.objDiscussiontopic OverSuperView:[self view]];
    [VFLConstraint allignSubViewViewVerticallyWithSubView:self.objDiscussiontopic OverSuperView:[self view] WithTopPading:[CommonFunction convertIphone6ToIphone5:0] AndBotomPading:[CommonFunction convertIphone6ToIphone5:57]];


+ (void)allignSubViewViewHorizentallyWithSubView:(UIView *)subView OverSuperView:(UIView *)superView{

    NSDictionary *viewDict= NSDictionaryOfVariableBindings(subView);
    [superView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[subView]|" options:0 metrics: 0 views:viewDict]];
}

+ (void)allignSubViewViewVerticallyWithSubView:(UIView *)subView OverSuperView:(UIView *)superView WithTopPading:(float)topPading AndBotomPading:(float)bottomPading{

    NSDictionary *viewDict= NSDictionaryOfVariableBindings(subView);
    NSDictionary *metrics=[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithFloat:topPading],@"topPading",[NSNumber numberWithFloat:bottomPading],@"bottomPading", nil];
    [superView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-topPading-[subView]-bottomPading-|" options:0 metrics: metrics views:viewDict]];
}

person Raheel Mateen    schedule 03.11.2015    source источник


Ответы (2)


Попробуйте: [self.scrollView insertSubview:self.refreshControl atIndex:0];

Проверьте contentSize, он может быть меньше размера кадра, если это так, используйте эту строку кода: self.scrollView.alwaysBounceVertical = true

person pBukhon    schedule 11.01.2016

Я не думаю, что UIRefreshControl предназначен для работы с простыми видами прокрутки. Документация Apple конкретно ссылается на UITableView, когда речь идет об управлении обновлением.

Вы можете посмотреть сторонние библиотеки для обновления, чтобы добавить это в UIScrollView.

person rounak    schedule 03.11.2015