Просмотр прокрутки не работает после добавления пользовательских элементов управления

Я разрабатываю приложение, в котором я нажимаю кнопку, и в нижней части экрана добавляется набор элементов управления (настраиваемый вид). Я могу нажимать на кнопку столько раз, сколько захочу. Поэтому я заканчиваю тем, что добавляю элементы управления внизу. Я хочу прокрутить вверх и подсчитать, сколько я добавил. Предположим, я намеревался добавить пользовательский вид 5 раз. Я добавил 4. Прокрутите вверх, подсчитайте, сколько я добавил. Я добавил 4, поэтому прокрутите вниз, добавьте еще 1, прокрутите вверх и сохраните/выполните некоторые вычисления. Но я не могу прокрутить вверх после добавления пользовательских элементов управления. На экране отображается последнее добавленное пользовательское представление и остается там. Я не могу прокрутить вверх, чтобы проверить, сколько раз я добавил. Что я делаю неправильно? Любые идеи? Итак, в первый раз, когда я нажимаю, чтобы добавить пользовательский вид, этот код выполняется

ITMCustomView *customView = [[ITMCustomView alloc] initWithFrame:
    CGRectMake(187, 560, 400, 400)];
customView.delegate = self;
[self.scrollView addSubview:customView];

Само пользовательское представление имеет кнопку «Добавить еще». Если я нажму на это, то вышеуказанное действие должно выполниться, снова добавив настраиваемый элемент управления. Так что я делаю это на "Добавить еще"

[self.delegate addNewSize:CGRectMake(187,self.y+ 400 , 400, 400)];

Что я делаю, так это передаю новое место, где должен быть создан новый настраиваемый вид. Так что делегат запускает этот метод

- (void)addNewSize:(CGRect)frame
{
    ITMCustomView *cView = [[ITMCustomView alloc] initWithFrame:frame];
    cView.delegate =self;
    CGPoint scrollPoint = CGPointMake(0.0, (frame.origin.y/500)*400);
    [self.scrollView setContentOffset:scrollPoint animated:YES];

    [self.scrollView addSubview:cView];
}

На самом деле это продолжение моего вопроса Добавить кучу динамически управлять экраном в iOS Но я принял ответ (который является верным ответом на этот вопрос), и, поскольку его расширение хотело начать новый вопрос. Если вам нужна дополнительная информация, пожалуйста, спросите. Спасибо...


person RookieAppler    schedule 12.12.2012    source источник


Ответы (1)


вам нужно использовать setContentSize после добавления вашего ITMCustomView. подобно

[self.scrollView setContentSize:CGSizeMake(320, 800)];

вы должны динамически устанавливать scrollView contentSize каждый раз, когда добавляете custom view.

person arthankamal    schedule 13.12.2012
comment
Спасибо. Я искал некоторую информацию в Интернете, и я наткнулся на ту же концепцию. Также это помогло мне stackoverflow.com/questions/2944294/ - person RookieAppler; 13.12.2012