0

我正在创建一个自定义键盘,其中 10 个 UIButtons 布置在水平行中。这些按钮跨越屏幕的宽度,大小相同,并且必须彼此齐平。

我还希望允许用户通过沿按钮行滑动手指来选择按钮。所选按钮的预览显示在屏幕的其他位置。当用户沿行移动手指时,预览会更新。当用户对他们的选择感到满意时,他们松开手指,确认选择。

显而易见的尝试是 UICountrolEventDragExit 或 UIControlEventDragOutside 删除上一个按钮的动作和 UIControlEventTouchUpInside 激活当前按钮并终止以前的触摸事件。然而,UICountrolEventDragExit 和 UIControlEventDragOutside 仅在用户将给定按钮拖到足够远时才被激活。由于我的按钮必须彼此齐平,这太远了,对我来说还不够好。

建议?

4

3 回答 3

2

在用于显示按钮的视图上禁用用户交互,并通过包含视图跟踪所有触摸。这类似于 Apple 的键盘代码的工作方式。

(或者,您可以直接在drawRect:单个键盘视图中绘制所有按钮,但在方向更改期间看起来不正确)

于 2010-08-08T07:01:56.543 回答
0

如果你想要一个 10 按钮的“键盘”,我会考虑使用 UISegmentedControl。您可以创建一个包含 10 个段的段,每个段都有自己的密钥,并接收以编程方式选择的密钥,例如:

 segmentSelected = mySegmentControll.selectedSegmentIndex;
于 2010-08-08T06:16:41.850 回答
0

打电话

-(void)touchesBegan:(NSSet )touches withEvent:(UIEvent)event;

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;

明智地使用显示 10 个 UIImages(不是 UIButtons)的视图也可以正常工作。

于 2010-08-16T08:11:24.807 回答