UIRefreshControl が消えないようにちょっとしたこと

kurukurku.jpg

UIRefreshControl 引っ張って更新するコントロールですね。
簡単に実装できるんですが1つ困ったことがあります。
このコントロールはScrollViewのSubViewとして登録して使うのですが、ピンチして広げることのできるWebViewのScrollViewに追加しちゃうと、ピンチしたときそのViewのセンターに表示するため移動して見えなくなってしまいます。

ピンチしても移動しないように、サブクラス化して表示位置を再計算させます。

- (void)layoutSubviews
{
 // ピンチしてもクルクルがセンターに来るように調整
 if ([self.superview isKindOfClass:[UIScrollView class]]) {
 UIScrollView *scrollView = (id)self.superview;
 CGRect frame = self.frame;
 frame.origin.x = [scrollView contentOffset].x;
 self.frame = frame;
 }
}

こんな感じですね。