集合视图单元格动画tvOS

时间:2015-10-18 19:38:06

标签: ios objective-c uicollectionview uicollectionviewcell tvos

我正在尝试为集合视图单元设置动画,这是我目前为止的代码

pushd "../myFolder"
Setlocal enabledelayedexpansion

set "FILENAME=%%~nf"
set "OUTPUT=%%~nxf"
set "PREFIX=in_" 
set "REPLACETEXT=hello"   
set "TEMP=tmp"

for /R %%f in (*.txt) do (
    for /f "delims=" %%A in (%%f) do (
        SET "string=%%A"
        SET modified=!string:%PREFIX%%FILENAME%=%REPLACETEXT%! 
        echo !modified! >> %TEMP%
    )   
    del %OUTPUT%
    rename %TEMP% %OUTPUT%  
)
popd

但是我的代码无效。我已经阅读了文档,它说要实现类似的东西       if(self == contextFocusedView)......但它有一个警告说不兼容的指针View Controller to UIView。有人可以告诉我,我的代码有什么问题吗?怎么解决?谢谢!

3 个答案:

答案 0 :(得分:4)

dequeueReusableCellWithReuseIdentifier:不会返回当前的视图,而是返回新视图。 尝试使用cellForItemAtIndexPath:

但为什么不使用:

if (context.nextFocusedView) {
    [coordinator addCoordinatedAnimations:^{
        context.nextFocusedView.transform = CGAffineTransformMakeScale(1.1, 1.1);
    } completion:nil];
}
if (context.previouslyFocusedView) {
    [coordinator addCoordinatedAnimations:^{
        context.previouslyFocusedView.transform = CGAffineTransformMakeScale(1.0, 1.0);
    } completion:nil];
}

答案 1 :(得分:3)

所以我最终搞清楚了。我的collectionView中有一个UIImage。用于tvOS的UIImage的一个属性是adjustsImageWhenAncestorFocused。所以,如果你在viewDidLoad中设置它,如:

    _imageView.adjustsImageWhenAncestorFocused = Yes;

或者,选中故事板中的“在聚焦时调整图像”框。这将集中图像。我没有尝试过标签。或者您可以在集合View单元格中添加的任何其他元素,但我确信有类似的东西。

快乐的编程人员! (:

答案 2 :(得分:0)

Swift 2.0版本的hanneski的答案:

override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
    if (context.nextFocusedView != nil) {
        coordinator.addCoordinatedAnimations({() -> Void in
            context.nextFocusedView!.transform = CGAffineTransformMakeScale(1.1, 1.1)
            }, completion: { _ in })
    }
    if (context.previouslyFocusedView != nil) {
        coordinator.addCoordinatedAnimations({() -> Void in
            context.previouslyFocusedView!.transform = CGAffineTransformMakeScale(1.0, 1.0)
            }, completion: { _ in })
    }
}

这会缩放整个单元格,包括所有标签...