3
  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 Constraint を持つスクロールビューにもう 1 つ、次のようなものがあります。

//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]];
}
4

2 に答える 2

0

UIRefreshControlaはプレーンスクロールビューで動作するように設計されているとは思いません。Apple のドキュメントでは、リフレッシュ コントロールについて説明する際に特に UITableViews を参照しています。

これを UIScrollView に追加するには、サード パーティのプルを参照してライブラリを更新します。

于 2015-11-03T07:27:33.577 に答える