【问题标题】:iPhone custom keyboardiPhone 自定义键盘
【发布时间】:2010-08-08 03:12:22
【问题描述】:

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

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

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

建议?

【问题讨论】:

    标签: iphone iphone-softkeyboard touchpad


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。我必须弄脏我的手?也许吧。
    【解决方案2】:

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

     segmentSelected = mySegmentControll.selectedSegmentIndex;
    

    【讨论】:

    • 感谢您的回答。这是一个稍微假设的问题:小键盘必须是一排 UIButton。假设这个。
    【解决方案3】:

    打电话

    -(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-12-09
      • 1970-01-01
      • 2013-11-11
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多