Навигация в сториборд

Бывает в сторибордах очень тяжело попасть или выбрать UIView, в котором какой-либо элемент растянут на всю ширинувысоту. На выручку приходит Tab. При нажатии фокус перейдет на след элемент в иерархии и так по кругу.

Сохраняем скриншот в Camera Roll

Задача: сохранить внутренности UIScrollView как скриншот в памяти телефона.

Добавляем категорию для UIImage (Github.com – ZHAdditions).

В методе, который вызывается по нажатию кнопки вставляем:

 UIImage * screenshot = [self imageFromView: self.scrollview];  
   
 // сохраняем изначальный scrollview.frame и растягиваем scrollview по высотеширине contentSize  
 self.originalScrollviewFrame = self.scrollview.frame;  
 CGRect newFrame = self.scrollview.frame;  
 newFrame.size = self.scrollview.contentSize;  
 self.scrollview.frame = newFrame;  
 
 if (screenshot)  
     UIImageWriteToSavedPhotosAlbum(screenshot, self, @selector(thisImage:hasBeenSavedInPhotoAlbumWithError:usingContextInfo:), nil);  

В контроллере где вызывается метод кнопки вставляем чуть ниже:

 - (void)thisImage:(UIImage *)image hasBeenSavedInPhotoAlbumWithError:(NSError *)error usingContextInfo:(void*)ctxInfo {
    // меняем обратно размер scrollview
    self.scrollview.frame = self.originalScrollviewFrame;

    if (error) {
        ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];  
        if (status != ALAuthorizationStatusAuthorized)  
            // Приложению нужен доступ к фотопленке. Перейдите в настройки приватности.  
        else  
            // Произошла неизвестная ошибка, не удалось сохранить скриншот.  
    } else  
        // Готово! Скриншот сохранен.  
 }  

Подводный камень тут в том, чтобы поменять scrollview.frame перед тем как делать скриншот, иначе скриншот будет только из видимой области scrollview.