iPhone自定义键盘

iPhone自定义键盘,iphone,iphone-softkeyboard,touchpad,Iphone,Iphone Softkeyboard,Touchpad,我正在创建一个自定义键盘,比如说10个UIButtons排列成一行。按钮横跨屏幕的宽度,大小相同,并且必须彼此齐平 我还想允许用户通过沿按钮行滑动手指来选择按钮。所选按钮的预览将显示在屏幕的其他位置。当用户沿行移动手指时,预览将更新。当用户满意他们的选择时,他们会松开手指,确认选择 显然要尝试的是UICountrolEventDragExit或UIControlEventDragOutside以删除上一个按钮的操作,以及UIControlEventTouchUpInside以激活当前按钮并终止上

我正在创建一个自定义键盘,比如说10个UIButtons排列成一行。按钮横跨屏幕的宽度,大小相同,并且必须彼此齐平

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

显然要尝试的是UICountrolEventDragExit或UIControlEventDragOutside以删除上一个按钮的操作,以及UIControlEventTouchUpInside以激活当前按钮并终止上一个触摸事件。但是,UICountrolEventDragExit和UIControlEventDragOutside仅在用户拖离给定按钮足够远时激活。因为我的纽扣必须相互齐平,这太远了,对我来说不够好


建议?

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

 segmentSelected = mySegmentControll.selectedSegmentIndex;

在用于显示按钮的视图上禁用用户交互,并通过包含的视图跟踪所有触摸。这与苹果的键盘代码工作原理相似

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

调用

-(无效)触摸开始:(NSSet)触摸事件:(UIEvent)事件

-(无效)触摸移动:(NSSet*)触摸事件:(UIEvent*)事件

-(void)touchesend:(NSSet*)toucheevent:(UIEvent*)event


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

谢谢您的回答。这是一个稍微有点假设性的问题:键盘必须是一排按钮。假设是这样,谢谢。我得把手弄脏?大概