我正在创建一个自定义键盘,其中10个UIButtons排列在一个水平行中。按钮跨越屏幕的宽度,大小相同,必须相互齐平。
我还想让用户通过沿着按钮行滑动手指来选择按钮。所选按钮的预览显示在屏幕的其他位置。当用户沿着行移动他们的手指时,预览会更新。当用户对他们的选择感到满意时,他们松开手指,确认选择。
要尝试的显而易见的事情是UICountrolEventDragExit或UIControlEventDragOutside删除上一个按钮和UIControlEventTouchUpInside的操作以激活当前按钮并终止以前的触摸事件。但是,只有当用户拖动距离给定按钮足够远时,才会激活UICountrolEventDragExit和UIControlEventDragOutside。由于我的按钮必须相互齐平,这对我来说太过分了,不够好。
建议?
答案 0 :(得分:2)
在用于显示按钮的视图上禁用用户交互,并通过包含视图跟踪所有触摸。这与Apple的键盘代码的工作方式类似。
(或者,您可以直接在单个键盘视图的drawRect:
中绘制所有按钮,但在方向更改期间看起来不正常)
答案 1 :(得分:0)
如果你想要一个10键'键盘',我会看一下使用UISegmentedControl。您可以创建一个包含10个段的段,每个段都有自己的键,并以编程方式接收选择的键,如:
segmentSelected = mySegmentControll.selectedSegmentIndex;
答案 2 :(得分: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)的视图也可以正常工作。