あなたが達成したいことを正確に理解していないかもしれませんが、問題はUITextView
クラスの誤用だと思います。UITextView
ドキュメントが言うように:
UITextView クラスは、スクロール可能な複数行テキスト領域の動作を実装します」
したがって、理想的には、UILabel
オブジェクトを に追加しないでくださいUITextView
。代わりに、表示する記事ごとにUILabel
とを作成UITextView
します。
UILabel *article1Label = [[UILabel alloc] initWithFrame:label1Frame];
UITextView *article1Text = [[UITextView alloc] initWithFrame:text1Frame];
UILabel *article2Label = [[UILabel alloc] initWithFrame:label2Frame];
UITextView *article2Text = [[UITextView alloc] initWithFrame:text2Frame];
...
ユーザーにすべての記事をスクロールして読んでもらいたい場合は、これらすべてのサブビューをUIScrollView
オブジェクトに追加できます。
UIScrollView *articlesScrollView = [[UIScrollView alloc] initWithFrame:scrollViewFrame];
[articlesScrollView addSubview:article1Label];
[articlesScrollView addSubview:article1Text];
[articlesScrollView addSubview:article2Label];
[articlesScrollView addSubview:article2Text];
最後に、UIScrollView
サブビューのすべての高さを加算してコンテンツ サイズを計算します。例えば:
CGFloat totalHeight = article1Text.frame.size.height + article2Text.frame.size.height;
articleScrollView.contentSize = {
.width = articleScrollView.bounds.size.width,
.height = totalHeight
};