问题:
问题是我使用resizableImageWithCAPInsets向我的UIVIEw添加拉伸背景,但是这个背景在右侧被截断,我不明白为什么.如果有人可以帮助我,我将非常感激.
我通过以下方式将拉伸的背景添加到我的UIVIEw:
[diagramBase addSubvIEw:[self addTileBackgroundOfSize:diagramBase.frame andType:@"ipad_diagram_border.png"]];
哪个调用此方法:
- (UIImageVIEw *) addTileBackgroundOfSize:(CGRect)frame andType:(Nsstring *)type{frame.origin.x = 0.0f;frame.origin.y = 0.0f;UIImageVIEw *backgroundVIEw = [[UIImageVIEw alloc] initWithFrame:frame];UIImage *image = [UIImage imagenamed:type];UIEdgeInsets insets = UIEdgeInsetsMake(10.0f,10.0f,10.0f);UIImage *backgroundImage = [image resizableImageWithCAPInsets:insets];backgroundVIEw.image = backgroundImage;return backgroundVIEw;}
实际的printcreen是用这个方法完成的(RINDiagramVIEw是我的子类UIVIEw的名字,我正在截取它的截图).旋转是在那里,因为我需要在保存时旋转图像,但我注释掉那部分,这不是背景的行为怪异.
- (UIImage *) createSnapshotOfVIEw:(RINDiagram *) vIEw{CGRect rect = [vIEw bounds];rect.size.height = rect.size.height - 81.0f;UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);CGContextRef context = UIGraphicsGetCurrentContext();[vIEw.layer renderInContext:context];UIImage *capturedScreen = UIGraphicsGetimageFromCurrentimageContext();UIGraphicsEndImageContext();UIImage *finalimage = [[UIImage alloc] initWithCGImage: capturedScreen.CGImage scale: 1.0 orIEntation: UIImageOrIEntationleft];return finalimage;}
我使用Xcode 5.1,一切都是以编程方式完成的(没有故事板等).基础SDK是iOS 7.1.
解决方法 如果您正在使用iOS 7,您可以使用新的drawViewHierarchyInRect:afterScreenUpdates:
以及Apple认为真正具有高效性的相关方法. 即使您的目标是iOS 6,也应该尝试一下,看看是否会遇到同样的问题.
总结以上是内存溢出为你收集整理的ios – 在屏幕截图期间,拉伸的UIView背景被截断全部内容,希望文章能够帮你解决ios – 在屏幕截图期间,拉伸的UIView背景被截断所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)