私の(かなり複雑な)状況は次のとおりです。
TestView
UIScrollView
を実装するサブクラスですが、-drawRect:
内部のある時点で-drawRect:
メソッドを呼び出します-drawAnotherPartWithRect:context:
。TestView
このメソッドは、コンテキストの特定の部分を個別に描画するために、 のサブクラスによって実装されます。- その内部で現在同じことを行う2 つのサブクラスが
TestView
実装されています:と.-drawAnotherPartWithRect:context:
Subclass1
Subclass2
- 現在のところ、初期化中の 2 つの違いはフレーム サイズだけです。
のインスタンスはSubclass1
、テーブル ビューのセクション ヘッダーとして使用され、完全に機能しSubclass2
ますが、セルのコンテンツ ビューのサブビューとして使用される場合、表示されますが、スクロールされません。その初期化は次のとおりです。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"PortoAppSubjectViewTableViewCell"];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"PortoAppSubjectViewTableViewCell"] autorelease];
Subclass2 *contentView = [[[Subclass2 alloc] initWithFrame:CGRectMake(0.f, 0.f, [tableView bounds].size.width, 32.f)] autorelease];
[contentView setContentSize:CGSizeMake(tableView.bounds.size.width * 3, 32.f)];
[contentView setTag:55];
[[cell contentView] addSubview:contentView];
}
[(SubjectTableViewCellContentView *)[[cell contentView] viewWithTag:55] setContainer:[[[[$container subGradeContainers] objectAtIndex:[indexPath section]] subGradeContainers] objectAtIndex:[indexPath row]]];
return cell;
}
興味深いことに、水平スクロール インジケーターが表示され、細かくスクロールしていることがわかりますが、(CoreText で描画された) テキストはそれに伴って左右に移動しません。これは、すぐに使用できるSubclass1
. また、Subclass2
セクション ヘッダー ビューのビュー クラスとして代わりに使用すると、問題なく動作します。
では、水平スクロール ビューとテーブル ビュー セルはどうしたのでしょうか。SOに関する他の関連する質問をチェックアウトしましたが、解決策を見つけることができませんでした。