スクロールビュー (セグメント コントロールによってトリガーされる) 内の 2 つのセクション (ビュー) の間で可視性を切り替えようとしていますが、非表示の要素があった場所にギャップを作りたくないのです。
現在私がやっていることはViewDidAppear
、2 つのビュー フレームを保存していて、ビューの可視性を切り替える必要があるときに、フレームを非表示にするビューを設定し、もう一方のビューを「トップ」に移動することCGRecZero
です。フレームを初期フレームに設定し、origin.y プロパティを変更して位置を調整します。問題は、スクロールするとすぐにビューのフレームがリセットされたように見え、ギャップが残ることです。
これが私のコードの例です
if (control.selectedSegmentIndex == 0) {
[self.firstView setHidden:YES];
[self.firstView setFrame:CGRectZero];
[self.secondView setHidden:NO];
CGRect frmTmp = secondViewRec;
frmTmp.origin.y = orgPoint.y;
[self.secondView setFrame:frmTmp];
} else {
[self.secondView setHidden:YES];
self.secondView.frame = CGRectZero;
[self.firstView setHidden:NO];
CGRect frmTmp = firstViewRec;
firstViewRec.origin.y = orgPoint.y;
self.firstView.frame = frmTmp;
}
私はスクロールビューを直接使用するつもりはありません。また、静的UITableView
を使用してセルを非表示にしようとしましたが、インターフェイスにギャップが残っていたため、このアプローチを試みています。助言がありますか?これを実装する簡単な方法はありますか?