0

コレクション ビューとテーブル ビューの両方のコンテンツ ビューの下部にビューを追加したい (したがって、あらゆる種類のスクロール ビューに適用できます) また、下にスクロールしてこのビューを表示できるようにしたいと考えています。

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        // Observe change in content size so can move my view when
        // content size changes (keep it at the bottom)
        [self addObserver:self forKeyPath:@"contentSize"
                  options:(NSKeyValueObservingOptionPrior)
                  context:nil];
        CGRect frame = CGRectMake(0, 0, 200, 30);
        self.loadingView = [[UIView alloc] initWithFrame:frame];
        [self.loadingView setBackgroundColor:[UIColor blackColor]];
        [self addSubview:self.loadingView];
        // Increase height of content view so that can scroll to my view.
        self.contentSize = CGSizeMake(self.contentSize.width, self.contentSize.height+30);

    }
    return self;
}

ただし、たとえばセルが挿入されると、contentSize が再計算され、コンテンツ サイズの下部にビューがまだ表示されている間 (スクロール ビューをバウンスできるため)、スクロールできなくなります。

私のコードのように、コンテンツのサイズが 30 ポイント高いままであることを確認するにはどうすればよいですか?

追加の質問は次のとおりです。

  • コンテンツのサイズを観察する以外に追跡する方法はありますか?

前もって感謝します。


私が試してみました:

- (void)layoutSubviews
{
    [super layoutSubviews];
    self.contentSize = CGSizeMake(self.contentSize.width, self.contentSize.height+30);
}

ただし、これによりあらゆる種類の表示上の問題が発生します。

4

2 に答える 2

0

私の理解が正しければ、一番下のtableView(fe)にローディングビューを表示したいです。この LoaderView を含む追加の UITableViewCell を tableView に追加できます。(numberOfRowsInTableView を変更する必要があります)

scrollViews の別の観点: コンテンツ自体よりも小さい境界を使用して、スクロール可能にします。たとえば、フレーム = フルスクリーン。サブビューでセルを追加または変更するたびに (追加) contentSize = コンテンツ サイズ + 30 px。

于 2013-04-29T19:10:06.477 に答える