2013-07-10 4 views
7

जैसे एनिमेटेड लोडर मुझे आश्चर्य हुआ कि स्नैपचैट उस भूत की चीज़ को एनिमेट करता है जब आप रीफ्रेश करने के लिए नीचे खींचते हैं? मैं इसे अपने ऐप में लागू करना चाहता था और सोच रहा था कि यह कैसे किया गया था।स्नैपचैट

+0

मैं कैसे एक पुल-टू-ताज़ा खरोंच से तो मैं एनिमेशन जोड़ सकते हैं बनाने के लिए पर एक तरह से UIRefreshControl साथ कोर एनिमेशन का उपयोग करने, या जानकारी के लिए सब कुछ खत्म हो रहा हूँ। बस स्नैपचैट के एनिमेटेड रिफ्रेशर को देखा, इसलिए यह पूरी तरह से संभव है। मैं इस पर एक वरदान डाल रहा हूँ। – user

+3

मुझे पूरा यकीन है कि यह सिर्फ एक नियमित खींच है, जो भूत को खींच रहा है, फिर एक कस्टम एनीमेशन कर रहा है। यह सबसे नज़दीकी चीज है जो मुझे मिल सकती है। https://www.cocoacontrols.com/controls/spiralpulltorefresh –

+3

जो भी डाउनवॉट किया गया है- कृपया बताएं कि कौन से नियम या प्रोटोकॉल का उल्लंघन किया जा रहा है। – user

उत्तर

7

मुझे लगता है कि आपको अपना स्वयं का समाधान लिखना होगा। लेकिन वास्तव में यह मुश्किल नहीं है।

आपको एक कस्टम टेबल हेडर व्यू बनाने की आवश्यकता है जिसमें एक खिंचाव वाली छवि है और आपके UITableViewDelegate में कुछ हैंडलिंग लागू करें। नीचे कस्टम रीफ्रेश नियंत्रण हैंडलिंग का एक काफी सामान्य कार्यान्वयन है।

हैडर फ़ाइल:

1) अपने अधोगामी सूचक दृश्य के रूप में सेवा करने के लिए एक कस्टम UIView बनाने

#import <UIKit/UIKit.h> 

typedef enum UpdateListViewState 
{ 
    UpdateListViewStatePull, 
    UpdateListViewStateRelease, 
    UpdateListViewStateUpdate 

}UpdateListViewState; 


@interface UpdateListView : UIView 
@property (nonatomic,readwrite) UpdateListViewState state; 
@property (nonatomic,strong) UIImageView imageView; 
@end 

2) tableView हेडर के रूप में headerView आवंटित:

self.header = [[UpdateListView alloc] init]; 
self.table.tableHeaderView = self.header; 

3) आपके UITableViewDelegate में , टेबल पुस्तक प्रबंधन लागू:

const int UPDATE_DRAG_HEIGHT = -70; 

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset 
{ 
    if (self.header.state == UpdateListViewStateRelease) { 
     //Perform update stuff here & perhaps refresh animation 
     self.header.state = UpdateListViewStateInitial; 

    } 
} 

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    //adjust size of self.header.imageView here according to scrollView.ContentOffset 
    if (scrollView.contentOffset.y < UPDATE_DRAG_HEIGHT && self.header.state != UpdateListViewStateUpdate) { 
      self.header.state = UpdateListViewStateRelease; 
    } 
} 
संबंधित मुद्दे