2014-01-27 3 views
1

программно У меня есть UISegmentedControl добавляемые к UIToolbar:Заголовок выбранного сегмента в UISegmentedControl исчезает при принятии скриншот

UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:toolbarFrame]; 
toolbar.barStyle = UIBarStyleBlack; 
toolbar.translucent = YES; 
toolbar.barTintColor = [UIColor colorWithRed:0.97 green:0.97 blue:0.97 alpha:1.0]; 
[self.view addSubview:toolbar]; 

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:@[@"Last week", @"Last month", @"All time"]; 
[segmentedControl setSelectedSegmentIndex:0]; 
[toolbar addSubview:segmentedControl]; 

Панель затем добавляется к контроллеру представления. Когда я делаю снимок экрана контроллера вида, происходит что-то странное. Заголовок выбранного сегмента исчезает.

Снимок экрана принимаются с помощью:

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, [[UIScreen mainScreen] scale]); 
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

Rendered вид: enter image description here

Скриншот: enter image description here

Любые указатели о том, где начать смотреть будут оценены.

ответ

3

Я заменил

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 

С

[self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES]; 

И теперь он работает, как ожидалось. Все еще не понимаю, почему это происходит.

Обратите внимание, что drawViewHierarchyInRect:afterScreenUpdates: - это только iOS 7.

+0

Есть идеи? drawViewHierarchyInRect: afterScreenUpdates: ДА имеет некоторые другие проблемы для нас ... – x2on

+0

Какие проблемы вызывают 'drawViewHierarchyInRect: afterScreenUpdates:' для вас? –

+0

Это иногда медленнее – x2on

Смежные вопросы