使用视图的 Swift 中的 LED 横幅
Posted
技术标签:
【中文标题】使用视图的 Swift 中的 LED 横幅【英文标题】:LED Banner in Swift using views 【发布时间】:2016-03-25 11:10:32 【问题描述】:我尝试创建一个动画 LED 横幅。我可以使用 5x8 数字显示器创建字母视图并使文本移动 (https://github.com/drollig8/LEDBanner.git): 问题:只有 10 个字母的文本 ios 必须每秒刷新 400 个视图 25 次。这种方式会杀死 CPU。
我可以做些什么来使这项工作更加节能?
【问题讨论】:
如何使用字体而不是 LED。这是一个选择吗? 【参考方案1】:这是一种从右到左滚动显示的方法。
-
使用 drawRect 函数创建一个可以绘制 5x8 单元格的自定义视图。
使用其中的 11 个视图来表示您的显示。将它们作为子视图添加到适当大小的视图中。
每隔 1/25 秒,移动 11 个视图,如果最左侧的视图已滚动到末尾,则将其移至右侧并使用新的字母数据进行更新。
【讨论】:
听起来单元格的内容保持不变。但是通过平滑滚动,字母必须“滑过”单元格,这意味着我必须每秒创建一个新单元格 25 次。并且每个单元格必须包含 40 个子视图才能显示“位”或“位”。 每 1/25 秒将单元格向左移动 1/5 个单元格。这些位是矩形填充。看看如何在 drawRect 例程中绘制填充矩形。这种方法总共会使用 12 个视图,并且只有在它第一次进入屏幕时才会绘制一个新字母。 您可以通过这种方式使用子视图来表示位。您只会创建与“on”位一样多的单元格子视图。滚动一个字母仍然和移动单元格超级视图一样简单。这样做,您将拥有三个级别的视图:一个视图表示显示,11 个字母子视图,以及每个字母的尽可能多的子视图来表示“on”像素。 完美!仅绘制“on”数字的提示显着减少了 cpu 使用率。请在 github 上找到我的更新代码:github.com/drollig8/LEDBanner.git以上是关于使用视图的 Swift 中的 LED 横幅的主要内容,如果未能解决你的问题,请参考以下文章
当 iAd 横幅出现时,如何将视图的内容上移? (在 Swift 中以编程方式)
collectionview admob ios中的横幅广告