iOS 10 Проблема: UIScrollView не прокручивается, даже если установлен ContentSize
ОБНОВИТЬ: Это проблема iOS 10. Это все еще работает, как и раньше в iOS 9.
Это интересно.
Я только что преобразовал свой «обучающий проект» («игрушечное» приложение) в Swift 3.
Он работал в течение нескольких лет под Swift 1.2.
Внезапно мой UIScrollView не прокручивается, даже если я установил contentSize далеко за его нижнюю границу.
Вот соответствующий код (процедура displayTags вызывается с массивом изображений, которые отображаются по центру и слегка смещены по вертикали, что приводит к вертикальной цепочке):
/*******************************************************************************************/
/**
\brief Displays the tags in the scroll view.
\param inTagImageArray the array of tag images to be displayed.
*/
func displayTags ( inTagImageArray:[UIImage] )
{
self.tagDisplayView!.bounds = self.tagDisplayScroller!.bounds
if ( inTagImageArray.count > 0 ) // We need to have images to display
{
var offset:CGFloat = 0.0 // This will be the vertical offset for each tag.
for tag in inTagImageArray
{
self.displayTag ( inTag: tag, inOffset: &offset )
}
}
}
/*******************************************************************************************/
/**
\brief Displays a single tag in the scroll view.
\param inTag a UIImage of the tag to be displayed.
\param inOffset the vertical offset (from the top of the display view) of the tag to be drawn.
*/
func displayTag ( inTag:UIImage, inOffset:inout CGFloat )
{
let imageView:UIImageView = UIImageView ( image:inTag )
var containerRect:CGRect = self.tagDisplayView!.frame // See what we have to work with.
containerRect.origin = CGPoint.zero
let targetRect:CGRect = CGRect ( x: (containerRect.size.width - inTag.size.width) / 2.0, y: inOffset, width: inTag.size.width, height: inTag.size.height )
imageView.frame = targetRect
containerRect.size.height = max ( (targetRect.origin.y + targetRect.size.height), (containerRect.origin.y + containerRect.size.height) )
self.tagDisplayView!.frame = containerRect
self.tagDisplayView!.addSubview ( imageView )
self.tagDisplayScroller!.contentSize = containerRect.size
print ( "Tag Container Rect: \(containerRect)" )
print ( " Tag ScrollView Bounds: \(self.tagDisplayScroller!.bounds)" )
inOffset = inOffset + (inTag.size.height * 0.31)
}
Обратите внимание, что contentSize scrollView расширяется каждый раз, когда добавляется тег. Я проверил (см. Операторы печати), и значение кажется правильным.
Сам проект полностью с открытым исходным кодом.
Вот где эта проблема проявляется (У меня есть другие ошибки, но я исправлю их после того, как исправлю это).
Я уверен, что делаю что-то очевидное и безумное (обычно так).
У кого-нибудь есть идеи?