【问题标题】:iOS 8 Keyboard Extension LayoutiOS 8 键盘扩展布局
【发布时间】:2014-12-19 23:40:02
【问题描述】:

我很难弄清楚如何为 iOS 8 创建自定义键盘扩展。我可以很好地完成功能并且调整颜色真的不是问题,布局 然而是主要问题。 我尝试了很多疯狂的方法来找出最好的布局,例如检查输入视图的宽度或容器应用程序视图的宽度(显然都不允许),然后确定它是什么设备我可以根据设备的屏幕尺寸和方向来计算按键的大小、高度和位置的比率。

到目前为止,该应用程序仅使用代码和 0 个 nib 文件或故事板进行键盘布局。如果有人可以帮助我,那就太棒了!

现在每个键都有一个功能,例如 q 键

//Q Key

    func addQKey()
    {
        var qKey = UIButton.buttonWithType(.System) as UIButton
        qKey.setTitle(NSLocalizedString("Q", comment: "Q Key"), forState: .Normal)
        qKey.sizeToFit()
        qKey.frame = CGRect(x: 5, y: 14, width: (view.bounds.size.width / 6), height: 20)
        qKey.titleLabel?.font = UIFont(name: "Avenir-Black", size: 20)
        //qKey.backgroundColor = UIColor(red: 255, green: 0, blue: 0, alpha: 0)
        //qKey.backgroundColor = UIColor(white: 1, alpha: 1)
        qKey.setTitleColor(UIColor.whiteColor(), forState: .Normal)

        qKey.addTarget(self, action: "didTapButton:", forControlEvents: .TouchUpInside)

        self.view.addSubview(qKey)
    }

这插入一个方法,然后插入文本

//TapButton Began

func didTapButton(sender : AnyObject)
{
    let button = sender as UIButton
    let title = button.titleForState(.Normal)
    var proxy = textDocumentProxy as UITextDocumentProxy

    proxy.insertText(title!)
}

如果您有更好的方法或知道如何解决问题,请告诉我!源代码也能救我一命!

【问题讨论】:

  • 你能printscreen怎么看键盘吗?

标签: iphone swift layout keyboard


【解决方案1】:

看起来您正在尝试手动布局,如果是这样,我认为您可以先定义一些常量,例如

定义 TOP_MARGIN 5

定义 BOTTOM_MARGIN 5

定义 LEFT_MARGIN 5

定义 RIGHT_MARGIN 5

然后定义按钮之间的间隙和行之间的间隙(假设它们应该相同)

然后您可以使用键盘宽度计算每个按钮框架,在您的 UIInputViewController 中,self.view.frame 应该为您提供键盘框架。

比如像Q

您首先需要计算按钮宽度,因为我们通常希望按钮具有相同的宽度(否则),所以 Q 的按钮宽度为

int widthForQ = self.frame.size.width - LEFT_MARGIN - RIGHT_MARGIN - 9 * BUTTON_GAP

高度也一样

int heightForQ = self.frame.size.height - TOP_MARGIN - BOTTOM_MARGIN - 3 * ROW_GAP

所以你的 Q 框架是

CGRectMake(LEFT_MARGIN, TOP_MARGIN, widthForQ, heightForQ)

但我会建议使用带有自动布局的笔尖,它真的非常快速和方便。

希望对你有帮助。

【讨论】:

  • 忘记标记您的答案。帮助很大,谢谢!
猜你喜欢
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多