РЕДАКТИРОВАТЬ: UITextView Метка разрезается пополам (по горизонтали)
Мне нужна помощь с этой специфической проблемой. У меня есть приложение с несколькими вариантами ответов, и у меня есть выбор как UITextview. Иногда, выбор D сокращается пополам по любой причине.
Скриншот:
Не уверен, что здесь происходит. У меня в основном есть кадр UITextView, приспособленный к его contentSize.
CGRect dFrame = choiceD.frame;
dFrame.size.height = choiceD.contentSize.height;
choiceD.frame = dFrame;
Есть идеи? Заранее спасибо.
3 ответа
Рассчитать размер строки:
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];
Я предлагаю сначала рассчитать размер текста, введенного вами в 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. Надеюсь, что это помогает. Спасибо:)
Используйте этот код. Вы должны определить высоту метки в соответствии с длиной вашего текста...
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];
Надеюсь, это поможет вам... холод