2012-04-17 2 views
1

Мне нужна помощь в этой специфической проблеме. У меня есть вопрос с несколькими вариантами ответов, и у меня есть выбор как UITextview. Иногда выбор D уменьшается пополам по любой причине.EDIT: UITextView Label разрезается пополам (по горизонтали)

Скриншот: Choice D is halved!

Не уверен, что здесь происходит. В основном я использую кадр UITextView для его contentSize.

   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 размер строки:

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

Init ярлык к содержанию строки выбора:

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]; 

Надежда, это поможет вам ... простуда

0

Мое предложение заключается в первую Рассчитайте размер текста, введенного вами в TextView, как: -

 //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. Надеюсь, что это поможет. Спасибо :)

Смежные вопросы