2011-08-30 15 views
0

ナビゲーションコントローラを介して画面にプッシュされたビューがあります。UIScrollViewとUITextViewの自動サイズ設定は可能ですか?

InsideはUIScrollViewです。

UIScrollViewの内部には、ImagesやLabelsのようないくつかの静的オブジェクトがあります。

次に、ハードなビットが来ます。さまざまな長さのテキストファイルからテキストが読み込まれたUITextViewがあります。

UITextViewのサイズをコンテンツに動的に、またUIScrollViewに対しても同じにする必要があります。これは可能ですか?

+0

UITextViewは編集可能ですか? – jin

答えて

1
float length = [yourText length]; 
textview.frame = CGRectMake(44, 87, 923, ceilf(length/142)*25); 

テキストフォント幅とし、一定値です。これから、スクロールビューのフレーム参照をテキストビューフレームに設定することができます。

0

はい、あなたはこのような何か行うことができます:あなたはテキストがどのくらいのチェックif文でintについては

if ([textView length] > int//any number you want) { 
    textView.frame = CGRectMake(//just adjust the size an position here); 
    scrollView.contentSize = CGSizeMake(//adjust scrollView size) 
} 
else if ([textView length] > int//just another number) { 
    // you can continue looping that for how often you want 
} 

を。 scrollViewとtextViewの両方のサイズを調整することに基づいています。 お手伝い願います!

+0

これはうまくいくとは思わないが、テキストがオーバーフローしない場合は – Rollo

+0

それはどういう意味ですか? – JonasG

1

これは、次のコードの助けを借りて行うことができます。私はあなたがScrollview

のために行うことができ、テキストフィールドの助けを借りて

NSString *cellText = "Text Of Your Text-Field"; 
UIFont *cellFont = [UIFont fontWithName:@"Your Font Name" size:FONT_SIZE];//UIFont *cellFont = [UIFont fontWithName:@"Helvetica-Bold" size:13.0]; 
CGSize constraintSize = CGSizeMake(@"Width Of Your Text-Field", MAXFLOAT);//CGSize constraintSize = CGSizeMake(220.0f, MAXFLOAT); 
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap]; 

int height = labelSize.height; 

frame.origin.x = Starting Position of X; 
frame.origin.y = Starting Position of Y; 
frame.size.width = Width Of Your TextField; 
frame.size.height = height; 

UILabel *lblName = [[[UILabel alloc] initWithFrame:frame] autorelease]; 
lblName.numberOfLines = 0; 
lblName.lineBreakMode = UILineBreakModeWordWrap; 
lblName.textAlignment = UITextAlignmentLeft; 
lblName.textColor = [UIColor whiteColor]; 
lblName.backgroundColor = [UIColor clearColor]; 
lblName.font = [UIFont boldSystemFontOfSize:13.0]; 

と同じようにそのラベルとあなたがすることができるのと同じ方法のためにそのコードを行っていた

そのスクロールビューのフレームを設定するだけで完了です。

ありがとう......ここ25

関連する問題