我正在尝试使用以下代码
获取UIView的屏幕截图UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
但UISegmentControl's
所选文字存在问题。它只出现在 IOS7 中。完全适用<=IOS6.
我附加了屏幕截图。
IOS 6屏幕截图正常工作。
但相同的代码不适用于IOS7 +。
如果有人找到解决方法或原因,请帮助我。
答案 0 :(得分:0)
请你试试这个答案:
在这个答案中,我试图更改SegmentController
的字体颜色。
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont boldSystemFontOfSize:14], UITextAttributeFont,
[UIColor redColor], UITextAttributeTextColor,
nil];
[yoursegmentedControl setTitleTextAttributes:dic forState:UIControlStateNormal];
NSDictionary *clickedindex= [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:UITextAttributeTextColor];
[yoursegmentedControl setTitleTextAttributes:clickedindex forState:UIControlStateHighlighted];
答案 1 :(得分:0)
最后我找到了解决方案,但我不知道,它是如何工作的(这背后的概念)。但假设是,层渲染将在动画结束时发生。但drawViewHierarchyInRect:
将呈现呈现的绝对屏幕。我的代码如下。
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define iOS7_0 @"7.0"
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(iOS7_0))
[baseView drawViewHierarchyInRect:baseView.frame afterScreenUpdates:YES];
else
[baseView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
我看到this post.
的引用