gpt4 book ai didi

iOS 自定义键盘可拉伸(stretch)图像停止拉伸(stretch)

转载 作者:可可西里 更新时间:2023-11-01 05:56:49 26 4
gpt4 key购买 nike

我为 UITextField 制作了一个自定义键盘,其中包含 18 个 UIButton。它是一个 UIView,被设置为文本字段的 inputView。

按钮是在 UIView 的 initWithFrame: 方法中使用代码创建的

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。至少启用其中一个按钮时,背景可以完美拉伸(stretch)。如果所有按钮都被禁用,并且 UITextfield resignsFirstResponder 然后 UITextField 再次成为 First Responder,按钮出现但背景图像似乎不再拉伸(stretch)(至少不是在垂直方向,水平方向似乎很好)。

我不太确定从哪里开始寻找解决方案。我的猜测是自定义键盘绘制 subview 的方式,但我不确定。

这可以通过在 layoutSubviewsdrawRect: 或类似的东西中设置背景图像来解决吗?水平拉伸(stretch)效果很好的事实让我想知道 UIButton 的框架是否在绘制时不正确。

编辑最左边的单元格只是标签,右边带有数字的单元格是 UITextfields 并且有自定义键盘

键盘的外观: How the keyboard should look

一旦单元格 3 上的第一响应者辞职,键盘的实际外观如何,然后给了 1 个第一响应者(所有键都禁用),然后给了 4 个第一响应者: How the keyboard actually looks once resigned first responder on cell 3, then gave 1 first responder (all keys disabled), then gave 4 first responder

最佳答案

为了处理不同的 iOS API,我做了一个类别UIImage.

@implementation UIImage (SPResizableImage)

- (UIImage *)spResizableImageWithCapInsets:(UIEdgeInsets)edge
{
UIImage * resizableImage = nil;

if ([self respondsToSelector:@selector(resizableImageWithCapInsets:)]) // iOS 5
{
resizableImage = [self resizableImageWithCapInsets:edge];
}
else
{
resizableImage = [self stretchableImageWithLeftCapWidth:edge.left
topCapHeight:edge.top];
}

return resizableImage;
}

@end

关于iOS 自定义键盘可拉伸(stretch)图像停止拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13396786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com