2012-04-17 17 views
1

私はこの独特の問題について助けが必要です。私は多肢選択式の質問アプリを持っており、私はUITextviewとして選択肢を持っています。場合によっては、何らかの理由で選択肢Dが半減することがあります。編集:UITextViewラベルが半分(水平)にカットされます

スクリーンショット: Choice D is halved!

ここで何が起こっているのかわかりません。基本的には、contentSizeに合わせてUITextViewフレームを調整します。

   CGRect dFrame = choiceD.frame; 
       dFrame.size.height = choiceD.contentSize.height; 
       choiceD.frame = dFrame; 

前もって感謝します。

+0

'UIButton'には' contentSize'プロパティはありませんか? 'contentSize'を取得しているオブジェクトのタイプは何ですか? – warrenm

+0

'choiceD'は幅が固定であることを知っていますか? 'dFrame.size = choiceD.contentSize'を設定した場合、利用可能なスペースが広すぎるため、ボタンがテキストにフィットしますか?また、 'NSLog'を使って前後のサイズを表示してみてください。 – Dondragmer

+0

@warrenmすみません、私はUITextViewを意味しました – JustAnotherCoder

答えて

0

Caculate文字列のサイズ:選択文字列コンテンツへのラベルのInit

NSString *choiceDString = @"Equal the present value...."; 
    CGSize size = [choiceDString sizeWithFont:[UIFont systemFontOfSize:CHOICE_FONT_SIZE] constrainedToSize:CGSizeMake(CHOICE_WIDTH, 100000)]; 

UILabel *choiceDLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0,size.width,size.height)]; 
    choiceDLabel.text= choiceDString; 

は、ボタンのサブビューラベルを追加します。

[button addSubview:choiceLabel]; 
+0

私は間違いなく今夜後に試してみましょう。タイ – JustAnotherCoder

0

は、このコードを使用します..あなたのテキストの長さに応じてラベルの高さを定義しています...

NSString *summary; 
summary = @" your text"; 
CGSize sizeofbuttonorlable = [summary sizeWithFont:[UIFont systemFontOfSize:30] 
       constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, MAXFLOAT) 
        lineBreakMode:UILineBreakModeWordWrap]; 

CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, sizeofbuttonorlable.height); 
UILabel *choiceDLabel = [[UILabel alloc] initWithFrame:frame]; 
choiceDLabel.text= summary; 
[button addSubview:choiceLabel]; 

希望、これはあなたが...私の提案は、最初のようなTextViewの中で、あなたが入力したテキストのサイズを計算することである

0

を冷やすのに役立ちます: - 書き込み言及上記

 //Give the maximum size of label which that label can have. 
CGSize maximumLabelSize = CGSizeMake(300,500); 
CGSize expectedLabelSize = [Label.text sizeWithFont:Label.font constrainedToSize:maximumLabelSize lineBreakMode:UILineBreakModeWordWrap]; 

     //adjust the label the new height. 
CGRect newDescFrame = Label.frame; 
newLabelFrame.size.height = expectedLabelSize.height; 
NSLog(@"%f",newLabelFrame.size.height); 
     //adjust the label the new width. 
newLabelFrame.size.width = expectedLabelSize.width; 
NSLog(@"%f",newLabelFrame.size.width); 
     //Set the label size according to the new height and width. 
label.frame = newLabelFrame; 

をtextViewにテキストを入力した後のコードです。 希望します。ありがとう:)

関連する問題