2015-11-16 4 views
1

У меня есть иерархия вид, похожий на тот, в изображении ниже (синий видимая часть сцены):UIScrollView в tvOS

enter image description here

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

Теперь я меняю фокус между двумя кнопками, используя UIFocusGuide, и это работает (отметьте его в didUpdateFocusInContext:). Однако мой профиль прокрутки не прокручивается вниз, когда Button2 фокусируется.

Вид прокрутки прикреплен к супервину, и я даю ему соответствующий размер содержимого в viewDidLoad моего контроллера.

Любые идеи о том, как получить свиток прокрутки?

ответ

1

Наконец я решил это путем установки scrollView.contentSize до соответствующего размера в viewDidLoad.

+0

мой Scrollview, кажется, вырезать из нижней части (часть тот невидимы на старте) мнение, я помещенной внутри моего scrollivew :( –

+0

добавить в viewDidLayoutSubviews 'переопределение функ viewDidLayoutSubviews() { self.page_scroll_view.contentSize = CGSizeMake (1920, 1780) } ' – benmore99

0

Вам нужно добавить распознаватель жестинга. Я узнал отсюда: http://www.theappguruz.com/blog/gesture-recognizer-using-swift. Я добавил больше кода, чтобы он не прокручивался странно, например. в горизонтальном направлении.

var currentY : CGFloat = 0 //this saves current Y position 

func initializeGestureRecognizer() 
{ 
    //For PanGesture Recoginzation 
    let panGesture: UIPanGestureRecognizer = UIPanGestureRecognizer(target: self, action: Selector("recognizePanGesture:")) 
    self.scrollView.addGestureRecognizer(panGesture) 
} 

func recognizePanGesture(sender: UIPanGestureRecognizer) 
{ 
    let translate = sender.translationInView(self.view) 
    var newY = sender.view!.center.y + translate.y 

    if(newY >= self.view.frame.height - 20) { 
     newY = sender.view!.center.y //make it not scrolling downwards at the very beginning 
    } 
    else if(newY <= 0){ 
     newY = currentY     //make it scrolling not too much upwards 
    } 

    sender.view!.center = CGPoint(x:sender.view!.center.x, 
     y:newY) 
    currentY = newY 

    sender.setTranslation(CGPointZero, inView: self.view) 
} 
Смежные вопросы