0

我是 iOS 新手,但我有丰富的 C++ 经验。我正在开发一个有趣的小游戏,我计划与 gamecenter 一起使用,但现在我正在尝试设置我的 GUI。这是我想要创建的图片: 在此处输入图像描述

从本质上讲,玩家有一手大约 7 张牌,他们可以在屏幕底部滑动这些牌。我希望它一次捕捉一张卡片,而不仅仅是惯性滚动,我希望他们能够点击一张卡片来播放它。你认为这是可行的吗?顺便说一句,我目前有存储为 PNG/矢量的自定义卡片,我在上面放置自定义文本以生成卡片。是否可以在 iOS 中创建自定义滚动视图对象,这些对象使用我的自定义背景模板化并从字符串、指定的文本大小和字体生成?(尺寸 48 黑尔维提卡)

谢谢!

4

2 回答 2

1

我想我会用持有卡片的 UICollectionView 来解决这个问题,并为手势实现手势识别器。这里有处理“snap-to”的代码:

在 UICollectionView 中停止滚动

屏幕的顶部将是同一视图控制器中的不同视图,因此您将在 vc 中实现手势识别器来处理平移(用于滑动)和点击。

这看起来很简单。集合视图通常需要单击以指示单元格的选择;您需要禁用集合视图上的选择,以防止它使用选择点击的单元格。

于 2013-04-07T02:50:26.273 回答
0

对于您问题的第二部分,我建议您查看处理 Bezier 路径成像的 CAShapeLayer。基础层类 CALayer 还具有设置圆角半径的属性,这将非常适合您的卡片。

在 iOS 上,Core Animation 层是进入视图的成像组件,可以直接使用和操作,但通过完整视图提供事件处理。要在 UIViews 中使用自定义 CALayer 类,您需要重写 layerClass 方法以返回您希望视图使用的 CALayer 类。图层可以嵌套和/或堆叠在视图中,例如,您可以在一个视图中将 CATextLayer 堆叠在 CAShapeLayer 之上,该 CALayer 的内容已设置为 PNG 图像。然而,我怀疑 CATextLayer 会给你你想要的卡片布局控制,所以你最终可能会在形状层中渲染字形。

Core Animation Programming Guide 值得一读。

于 2013-04-07T05:42:03.697 回答