0

RSS フィードからテキストを動的に設定する UITextView があります。textview は UIScrollview のサブビューです。最終的に、私はモバイルの新聞アプリを作成しているので、ユーザーはテキスト (およびその他のサブビュー) をスクロールできるはずです。

IBでビューを作成した後、追加しました

NSString *sourceCode = [NSString stringWithContentsOfURL:[NSURL URLWithString:self.URL] encoding:NSUTF8StringEncoding error:&error];
sourceCode = [self parseHTMLText:sourceCode];
CGSize maximumLabelSize = CGSizeMake(320,9999);
CGSize txtStringSize = [sourceCode sizeWithFont:self.body.font
                              constrainedToSize:maximumLabelSize];
CGRect newlblFrame = CGRectMake(0, 0, 320, txtStringSize.height);
self.body.frame = newlblFrame; //body is the textview
self.body.text = sourceCode;
self.scroll.contentSize=CGSizeMake(320, self.body.frame.size.height+300); //scroll is scrollview

典型的な NSLog が表示されますbody frame = {{0, 0}, {320, 2088}} scrollview frame = {{0, 0}, {320, 417}} scrollview content size = {320, 2388}

ただし、アプリを実行するとbody、インターフェイスビルダーの高さが約 196 に維持され、スクロールビューはスクロールしません (移動すると、元の位置に跳ね返ります)。

ちなみに、textview のフレームを で手動で変更しようとするとCGRectMake、NSLog は正しい高さを表示しますが、表示は変わりません。背景色などの他のプロパティを調整できるため、IB で正しく接続されていることを確認しました。

編集:

cliptoBoundstextview のプロパティをに設定した後NO、textview は高さを調整し、テキスト全体を表示しようとします。ただし、画面の最後で途切れてしまい、スクロールできません。

これが私が現在見ているものです。便宜上、スクロールビューの背景色を灰色にしました。スクロールビューの一部が部分的に白く、部分的に灰色になっている理由がわかりません。(タイトル)は別のラベルであるところで) ここに画像の説明を入力

4

1 に答える 1

0

UIViewサブクラスである別のクラスが含まれていてUIView、このビューに対して何らかのアクションが必要な場合 は常に設定してくださいparentView.userInteractionEnabled = YES;

ビューの階層を確認することをお勧めします。表示したいテキストがスクロールビューに含まれていない可能性があります。

for (UIView *view in parentView.subviews){
    NSLog(@"%@", view);
}

よろしく

于 2012-10-25T00:56:51.387 に答える