Как получить эффект параллакса на 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.