ios - 在 iOS 上创建动态磁贴效果

标签 ios

<分区>


想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post .

关闭 9 年前

如何在按钮或框架上创建(类似于 Windows8)动态平铺效果? 我想显示一些在按钮中随机更改的文本。淡入和淡出效果会很好。

最佳答案

这个问题的答案很难,因为这是基本的 iOS 知识,而且有多种解决方案。

我将如何解决这个问题:

  1. 创建自定义的 UICollectionViewCell 子类,它代表一个图 block 。

    @interface UITileView : UICollectionViewCell
    
    @property (nonatomic, weak) id<UITileViewDataSource> dataSource;
    
    - (void)reloadTile;
    
    @end
    
  2. 创建在 1. 中创建的 UICollectionViewCell 类的子类,代表特定的图 block 。

  3. 创建一个 UICollectionView,它将显示那些 UICollectionViewCell
  4. 创建委托(delegate)/数据源架构,以提供带有数据或特定 subview 的图 block 。

    @protocol UITileViewDataSource
    
    - (UIImage *)tileView imageForIndexPath:(NSIndexPath *)indexPath;
    - (NSString *)tileView tileStringForIndexPath:(NSIndexPath *)indexPath;
    
    @end
    
  5. 使用 UIView animateWithDuration: 方法(用于淡入和淡出的 alpha 属性)为图 block 设置动画。

    // Fade in
    mySpecificTile.alpha = 0.0f;
    
    [UIView animateWithDuration:0.3 animations:^
    {
        mySpecificTile.alpha = 1.0f;
    }
    

这可能是最快、最简单的解决方案。当然,您可以创建一个可扩展性更好的解决方案。只需确保磁贴不拥有数据并向数据源索取即可。

这只是一个概念,应该作为如何进行的指南。

阅读以下链接以获取有关 UICollectionView 的更多信息:

此处编写的所有代码仅适用于 ARC!

关于ios - 在 iOS 上创建动态磁贴效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22763802/

上一篇:ios - 不确定 (id)init 的解释

下一篇:ios - 创建 SKLabelNode 时未命名的子节点?

相关文章:

ios - 如何在应用程序重新打开时重置本地通知

ios - 核心数据 - 预填充数据时模型不兼容

ios - 无法在 watchOS 上使用 XCFramework

ios - CNContactViewController 按钮 Action

ios - 尝试显示 ViewController 后出现奇怪的错误

ios - 检查用户是否购买了以前的应用程序版本

iphone - UILabel 中的内阴影

ios - iPad 上的 ActionSheet 无法正确显示 SwiftUI

objective-c - 如何在不影响 UIBarButtonItem 的情况下设置 UIButton 的外观?

ios - willAnimateRotationToInterfaceOrientation 未从trigger.io 模块监听器调用