Возможно ли автоматическое изменение размеров UIScrollView и UITextView? - PullRequest
0 голосов
/ 30 августа 2011

У меня есть вид, который выдвигается на экран с помощью навигационных контроллеров:

Внутри UIScrollView.

Затем внутри UIScrollView есть несколько статических объектов, таких как изображения и метки.

Затем наступает сложный момент. Существует UITextView, текст которого загружается из разных текстовых файлов различной длины.

Мне нужно иметь возможность динамически определять размер UITextView для его содержимого и то же самое для UIScrollView. Возможно ли это?

Ответы [ 3 ]

1 голос
/ 30 августа 2011

Вы можете сделать это с помощью следующего кода. Я сделал этот код для Label, и вы можете сделать это с помощью текстового поля.

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

И так же, как вы можете сделать Для прокрутки. Просто вы должны установить кадр этого прокрутки и все готово.

1 голос
/ 30 августа 2011
float length = [yourText length];
textview.frame = CGRectMake(44, 87, 923, ceilf(length/142)*25);

Здесь 25 - постоянное значение, принимаемое за ширину шрифта текста.Отсюда вы можете установить ссылку на кадр прокрутки на текстовую рамку.

0 голосов
/ 30 августа 2011

Да, вы можете сделать что-то вроде этого:

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
}

Для int в операторе if вы проверяете длину текста. Исходя из этого, вы регулируете размер scrollView и textView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...