我为UITextField制作了一个自定义键盘,由18个UIButtons组成。这是一个UIView,它被设置为文本字段的inputView。iOS自定义键盘可伸缩图像停止拉伸
按钮被使用的代码
UIImage* buttonImage =[[UIImage imageNamed:@"keyboard-button-background.png"] stretchableImageWithLeftCapWidth:1.0 topCapHeight:79.0];
UIImage* buttonPressedImage =[[UIImage imageNamed:@"keyboard-button-pressed-background.png"] stretchableImageWithLeftCapWidth:1.0 topCapHeight:79.0];
UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:title forState:UIControlStateNormal];
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[button setBackgroundImage:buttonPressedImage forState:UIControlStateHighlighted];
button.frame = CGRectMake(xPosition, yPosition, buttonWidth, buttonHeight);
一旦按钮被按下时,按钮,然后设置为enabled = NO
在了UIView的initWithFrame:
方法创建的。至少有一个按钮处于启用状态时,背景可以完美展开。如果所有按钮都被禁用,并且UITextfield然后UITextField再次成为First Responder,则出现按钮,但背景图像不再可以伸展(至少不在垂直方向上,水平看起来很好)。
我不确定从哪里开始寻找解决方案。我的猜测是自定义键盘绘制子视图的方式,但我不确定。
难道这可以通过设置背景图像在layoutSubviews
或drawRect:
或类似的东西?横向拉伸工作正常的事实使我怀疑UIButton的框架是否不正确,因为它正在被绘制。
编辑 的最左边细胞只是标签,与数字UITextfields右侧的细胞,具有自定义键盘
键盘应该是什么样子:
如何键盘实际上看起来在单元格3上一次退出第一响应者,然后给予第一响应者(所有键被禁用),然后给出4个第一响应者:
你可以加入一些截图吗?想象一下这应该是什么样子有点难。 – jrturton
是啊挂在2分钟 – Josh
你在哪里设置你的rects? – Luke