UIscrollview проблема изменения размера - PullRequest
0 голосов
/ 08 июня 2011

У меня есть srollview с текстовыми полями и метками в качестве его подпредставления, для двух текстовых полей я хочу показать UIpickerview.Например: когда пользователь касается textfield11, я хочу показать средство выбора, которое скользит вверх от нижней части экрана, в этот момент я хочу изменить высоту моего просмотра прокрутки, но он не работает.

CGRect scrollframe = scrollView.frame;
    NSLog(@"scrollframe.height=%f, pick height=%f",scrollframe.size.height, pick.frame.size.height);
    scrollframe.size.height -= pick.frame.size.height;
    [UIView beginAnimations:@"start" context:NULL];
    [UIView setAnimationDuration:0.2];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [scrollView setFrame:scrollframe];
    NSLog(@"scroll height = %f",scrollframe.size.height);
    NSLog(@"scrollview height = %f", scrollView.frame.size.height);
    [pick setFrame:CGRectOffset([pick frame], 0, -220)];
    [UIView commitAnimations];

Это журнал консоли.

2011-06-08 10: 43: 31.316 AESDirect [281: 207] scrollframe.height = 416.000000, высота выбора = 216.000000 2011-06-08 10: 43: 31.316 AESDirect[281: 207] высота прокрутки = 200,000000 2011-06-08 10: 43: 31,317 AESDirect [281: 207] высота прокрутки = 200,000000 before scrolling

after scrolling

Ответы [ 2 ]

1 голос
/ 08 июня 2011

Это может помочь вам:

[scrollframe setContentOffset:CGPointMake(scrollframe.contentOffset.x, scrollframe.contentOffset.y-100)];

Вы можете вызвать вышеуказанный код с помощью той же функции, откуда вы вызываете pickerView.Таким образом, вам не нужно изменять высоту прокрутки.

Ваш код должен быть таким:

       UIView *contentView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
[contentView setBackgroundColor:[UIColor clearColor]];
self.view = contentView;

UIScrollView *horizontalScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
[horizontalScroll setBackgroundColor:[UIColor blackColor]];
[horizontalScroll setDelegate:self];
[contentView addSubview:horizontalScroll];

UIPickerView *tempPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 220, 320, 100)];
[tempPicker setHidden:YES];
[contentView addSubview:tempPicker];

Сделайте все три из них глобальными в файле .hи тогда вы будете лучше контролировать свое поведение.Ваше представление выбора перемещается вместе с другими элементами представления прокрутки, потому что вы могли бы добавить представление выбора как подпредставление в представлении прокрутки.

0 голосов
/ 08 июня 2011

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

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