Переопределение UIScrollView

#iphone #objective-c #ios #uiscrollview

#iPhone #objective-c #iOS #uiscrollview

Вопрос:

Существует частный метод UIScrollView, который должен позволить мне контролировать скорость анимации смещения содержимого. Но когда я переопределяю его в своем классе вот так…

 - (void)setContentOffsetAnimationDuration:(CFTimeInterval)value
{
    _contentOffsetAnimationDuration = 10;
}

[self setContentOffset:offset animated:YES];
  

Я получаю ошибку компилятора, подобную этой…

 Undefined symbols for architecture armv7:
  "_OBJC_IVAR_$_UIScrollView._contentOffsetAnimationDuration", referenced from:
      -[HistoryScrollView setContentOffsetAnimationDuration:] in HistoryScrollView.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
  

Есть идеи. Я действительно не хочу вставлять в это какой-то неуклюжий код анимации. Это так мучительно близко к исправлению.

Ответ №1:

Я думаю, вы имеете в виду «_setContentOffsetAnimationDuration». Сделайте что-то вроде этого:

 [myScrollView _setContentOffsetAnimationDuration:10];
  

Хотя из-за этого вы будете отклонены из App Store. Теперь рецензенты запускают статические анализаторы, которые обнаруживают любое использование частных API.