Как получить эффект параллакса на UIButton в tvOS?

Я пытаюсь сделать некоторые UIButtons в UIView для приложения tvOS, но не смогли заставить их отображать новый эффект параллакса в симуляторе. Я успешно настроил стек телевизионных изображений в images.xcassets называется "startReadingButton", и мои кнопки загружаются вместе с файлом, но они не отображают эффект блестящего параллакса при перемещении по пульту в симуляторе. Вот как я загружаю свои UIB-кнопки:

   for button in 1...5 {

        let image = UIImage(named: "startReadingButton")

        let newButton = UIButton(type: .Custom)
        newButton.frame = buttonRects[button - 1]
        newButton.setBackgroundImage(image, forState: UIControlState.Focused)
        newButton.imageView?.image = image
        newButton.imageView?.adjustsImageWhenAncestorFocused = true
        newButton.addTarget(self, action: "buttonPressed:", forControlEvents: UIControlEvents.PrimaryActionTriggered)
        newButton.tag = button
        newButton.canBecomeFocused()
        newButton.adjustsImageWhenHighlighted = true
        newButton.clipsToBounds = false
        self.addSubview(newButton)
        self.homeButtons.append(newButton)

    }

До сих пор я пробовал почти все варианты, которые мне приходилось придумывать, чтобы найти решение, например, установить тип кнопки как.Custom и.System, установить изображение с различными параметрами UIButton и т. Д. Однако я не могу получить кнопки для войдите в режим параллакса и перемещайтесь, когда они сфокусированы.

Кто-нибудь знает, что мне нужно сделать, чтобы получить желаемый эффект параллакса?

1 ответ

Решение

Решил мою проблему -

Установите свой стек изображений LSR или Apple TV в своем UIButton"s setImage собственность для UIControlState.Focused государство.

Установить imageView?.clipsToBounds = false на UIButton,

Задавать newButton.imageView?.adjustsImageWhenAncestorFocused = true на UIButton,

У меня есть следующий код для работы, как ожидалось:

  for button in 1...3 {

        let buttonUnpressedTexture = UIImage(contentsOfFile:NSBundle.mainBundle().resourcePath!.stringByAppendingPathComponent("startReadingUnpressed.png"))!
        let buttonPressedTexture = UIImage(contentsOfFile:NSBundle.mainBundle().resourcePath!.stringByAppendingPathComponent("startReadingPressed.png"))!

        let newButton = UIButton(type: .Custom)
        newButton.frame = buttonRects[button - 1]
        newButton.setImage(buttonUnpressedTexture, forState: UIControlState.Normal)
        newButton.setImage(buttonPressedTexture, forState: UIControlState.Highlighted)
        newButton.setImage(UIImage(named: "StartReadingButton"), forState: UIControlState.Focused)
        newButton.imageView?.clipsToBounds = false
        newButton.imageView?.adjustsImageWhenAncestorFocused = true
        newButton.addTarget(self, action: "buttonPressed:", forControlEvents: UIControlEvents.PrimaryActionTriggered)
        newButton.tag = button
        newButton.canBecomeFocused()
        self.addSubview(newButton)            
    }

"StartReadingButton" - это стек изображений Apple TV в моем каталоге images.xcassets.

Другие вопросы по тегам