按钮是使用代码在UIVIEw的initWithFrame:方法中创建的
UIImage* buttonImage =[[UIImage imagenamed:@"keyboard-button-background.png"] stretchableImageWithleftCapWIDth:1.0 topCapHeight:79.0];UIImage* button@R_502_4848@Image =[[UIImage imagenamed:@"keyboard-button-@R_502_4848@-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:button@R_502_4848@Image forState:UIControlStateHighlighted];button.frame = CGRectMake(xposition,yposition,buttonWIDth,buttonHeight);
按下按钮后,该按钮将设置为启用=否.当至少启用其中一个按钮时,背景会完美展开.如果所有按钮都被禁用,并且UITextfIEld resignFirstResponder然后UITextFIEld再次成为First Responder,则会出现按钮,但背景图像似乎不再拉伸(至少不在垂直方向,水平似乎很好).
我不确定从哪里开始寻找解决方案.我的猜测是自定义键盘绘制子视图的方式,但我不确定.
可以通过在layoutSubvIEws或drawRect:或类似的东西中设置背景图像来解决这个问题吗?水平拉伸工作正常的事实让我想知道UIbutton的框架是否正确,因为它正在绘制.
编辑
最左边的单元格只是标签,右边的单元格是UITextfIElds并且有自定义键盘
键盘的外观如何:
键盘实际看起来如何在单元格3上重新响应第一响应者,然后给出1个第一响应者(禁用所有键),然后给出4个第一响应者:
解决方法 为了处理不同的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自定义键盘可伸缩图像停止拉伸全部内容,希望文章能够帮你解决iOS自定义键盘可伸缩图像停止拉伸所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)