在iOS中對cell進行局部截圖

         今天在開發過程中遇到了一個問題,就是需要對某個控件單獨進行截圖。如果是對屏幕進行截圖,相信大家都很熟悉,但是對於單獨的一個控件呢?比如就以最通常的UITableViewCell來說,因爲cell是最常用的控件之一,如果懂得了它的截圖,那麼其他控件也就迎刃而解。


      這點蘋果似乎已經幫我們想好了,如果您支持的iOS7及以上的系統,那麼只需要調用一行代碼即可。


UIView *snapshot = [theCell snapshotViewAfterScreenUpdates:YES];
     

     是不是很方便?


     但是讓我們再看看這個方法的定義:

  

- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates NS_AVAILABLE_IOS(7_0);

     我擦!只支持iOS7及以上!那iOS6可腫麼辦?一運行豈不是會崩潰?


     表着急~iOS6上我們自有辦法~


     

        CGRect rect = [self rectForRowAtIndexPath:self.indexOfTheCell];
        UIGraphicsBeginImageContext(rect.size);
        CGContextRef context = UIGraphicsGetCurrentContext();
        [theCell.layer renderInContext:context];
        UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:rect];
        imageView.image = img;

     哈哈哈。。我們得到啦!


     所以我們只需要設置一個分支,接可以啦~


     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章