UIScrollview не работает даже после добавления setcontentsize

Я динамически добавляю собственное представление в свой UIViewController. Добавляет отлично и сейчас, не исключение. Но экран застрял. Моя прокрутка не работает. Я столкнулся с этой проблемой ранее, и люди предложили использовать setContentSize. Я сделал это, и это сработало нормально. Теперь у меня есть новый сценарий. У меня есть 2 экрана. На экране A я сохраняю значения. Затем я нажимаю кнопку панели на экране A и перехожу на экран B. Здесь на экране B (это tableviewcontroller) я выбираю одну строку и иду вернитесь к экрану A и заполните значения соответствующим образом (в основном загрузите сохраненные значения, которые я сохранил в начале приложения). Я заполняю их правильно, а также добавляю вид прокрутки, но он застревает. Он не перемещается ни вверх, ни вниз. У меня есть этот код, написанный для добавления подвида и установки размера прокрутки и размера кадра.

ITMCustomView *cView = [[ITMCustomView alloc] initWithFrame:CGRectMake(187, 660, 400, 400)
                                                         andOrderedItem:@"New"
                                                                 andTag:self.tagNumber
                                                          withFoldArray:self.foldTypeArray
                                                          withRollArray:self.rollTypeArray];

                cView.tag =self.tagNumber;
            NSLog(@"Assigned tag is %d",cView.tag);

            cView.delegate = self;

            CGPoint scrollPoint = CGPointMake(0.0, (cView.frame.origin.y/500)*400);
            [self.scrollView setContentOffset:scrollPoint animated:YES];

            [self.scrollView addSubview:cView];

            CGFloat scrollViewHeight = 0.0f;
            for (UIView *view in self.scrollView.subviews)
            {
                scrollViewHeight += view.frame.size.height;
            }

            CGSize newSize = CGSizeMake(320,scrollViewHeight);

            [self.scrollView setContentSize:newSize];
            NSLog(@"947 the tag number is %d",self.tagNumber);

Я проверяю значение scrollViewHeight.. его 3254.000.. Я изменил его на 4000, поскольку кто-то предложил увеличить высоту. Итак, что я делаю неправильно. Этот вопрос следует за другим моим вопросом: NSNotifications Если вам нужна дополнительная информация, спросите. Спасибо.


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


Ответы (2)


У меня заработало после того, как я использовал появится вместо появится.

- (void) viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    self.scrollView.contentSize = self.viewMain.bounds.size;
}
person Mickey    schedule 05.02.2014

Проверьте свойство scrollingEnabled в представлении прокрутки. Неудивительно, что он должен быть установлен на YES. Если это так, и это все еще не работает, проверьте, имеет ли представление (и его суперпредставления) userInteractionEnabled значение YES. В отладчике вы можете выполнить po [self.view recursiveDescription], чтобы вернуть иерархию представлений, что также может дать вам полезную информацию.

person Scott Berrevoets    schedule 26.12.2012
comment
Спасибо. ScrollingEnabled уже был установлен YES. po [self.view recursiveDescription] показал, что было 174 userInteractionEnabled, и все 174 были userInteractionEnabled = NO; Пользовательский вид, который я добавил, имеет несколько кнопок, текстовых полей. Все они включены. Я могу нажимать их, вводить значения и т. д. Это первый раз, когда я что-то использую... так что же мне делать дальше? Вот что получилось для прокрутки | ‹UIScrollView: 0x19c85e30; кадр = (0 0; 768 960); clipsToBounds = ДА; автоматическое изменение размера = TM+BM; распознавание жестов = ‹NSArray: 0x1be16fe0›; слой = ‹CALayer: 0x19c8bfd0›; смещение содержимого: {0, 0}› - person RookieAppler; 27.12.2012
comment
Сделайте print (BOOL) self.scrollView.userInteractionEnabled. Он должен быть YES, чтобы прокрутка работала. Если он установлен на YES, я не уверен, в чем может быть проблема, все остальное вроде в порядке. - person Scott Berrevoets; 27.12.2012
comment
@Scott. Я получил это в ходе дальнейшего исследования без прокрутки Я выбрал режим прокрутки на доске объявлений. Перешел в инспектор файлов и снял флажок «Использовать автомакет». Кажется, теперь работает. Буду тестить дальше. - person RookieAppler; 27.12.2012