2009-09-29 2 views
1

У меня есть Uitextview, который заполнен текстовым файлом. У меня есть элемент управления на странице, который позволяет пользователю включать и отключать пейджинг. У меня проблема, когда верхняя и/или нижняя строка текста иногда «разделяются пополам», поэтому вы можете видеть только верхнюю или нижнюю половину строки. Я считаю, что приведенный ниже код должен исправить это. Код получает высоту строки текста и высоту кадра, определяет количество строк, которые видны на экране, и создает новую высоту кадра, чтобы она соответствовала. В то время как размер кадра изменяется, он все же «отсекает» верхнюю и/или нижнюю строку. У кого-нибудь есть предложения? Я ошибаюсь в своей математике?iphone UitextView Текст отключен

Спасибо !!!

- (void)fitText 
    { 

      CGFloat maximumLabelHeight = 338; 
      CGFloat minimumLabelHeight = 280; 

      CGSize lineSize = [theUiTextView.text sizeWithFont:theUiTextView.font]; 
      CGFloat lineSizeHeight = lineSize.height; 
      CGFloat theNumberOfLinesThatShow = theUiTextView.frame.size.height/lineSize.height; 

      //adjust the label the the new height 
      theNumberOfLinesThatShow = round(theNumberOfLinesThatShow); 

      CGFloat theNewHeight = lineSizeHeight * theNumberOfLinesThatShow; 

      if (theNewHeight > maximumLabelHeight) 
     { 
      theNumberOfLinesThatShow = theNumberOfLinesThatShow - 1; 
      theNewHeight = lineSizeHeight * theNumberOfLinesThatShow; 
     } 
     if (theNewHeight < minimumLabelHeight) 
     { 
      theNumberOfLinesThatShow = theNumberOfLinesThatShow + 1; 
      theNewHeight = lineSizeHeight * theNumberOfLinesThatShow; 
     } 

      //adjust the label the the new height. 
      CGRect newFrame = theUiTextView.frame; 
      newFrame.size.height = theNewHeight; 
      theUiTextView.frame = newFrame; 
} 

ответ

1

UIScrollView (и UITextView является UIScrollView), кажется, использует фиксированный 8-пиксельной вставку с обеих сторон. Кажется, что это не зависит от выравнивания или размера шрифта.

Итак, я думаю, что вам не хватает здесь коэффициента вымывания 16,0 - см. this question.

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

  • Нет связанных вопросов^_^