2012-12-10 9 views
5

आप adding it to collection's subviews द्वारा UICollectionView (या उस बात के लिए किसी भी UIScrollView) को UIRefreshControl जोड़ सकते हैं:क्या कोई क्षैतिज UIRefreshControl है?

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; 
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged]; 
[self.collectionView addSubview:refreshControl]; 

यह जब संग्रह व्यू लेआउट UICollectionViewScrollDirectionHorizontal है काम नहीं करता।

मैंने बाईं ओर रीफ्रेश नियंत्रण डालने के लिए layoutSubviews ओवरराइड करने का प्रयास किया, लेकिन यह इस तरह स्क्रॉलिंग प्रगति को ट्रैक नहीं करेगा। क्या मैं क्षैतिज लेआउट के साथ काम करने में इसे चालित कर सकता हूं?

+1

शायद मैं रूढ़िवादी जा रहा रहा हूँ, लेकिन यद्यपि आप है कि रास्ते में इस दृश्य में जोड़ सकते हैं द्वारा इस लक्ष्य को हासिल कर सकते हैं, और यह काम करने के लिए मिलता है, मुझे नहीं लगता कि यह डिजाइन किया गया था इसके लिए, दस्तावेज स्पष्ट रूप से इसे UITableView से लिंक करता है। – Daniel

+0

@Daniel हालांकि यह सच है, मैं यहां बहुत से लोगों को ऐसा कर रहा हूं जिससे मुझे ऐसा लगता है कि ऐप्पल को यह वास्तविक कामकाजी व्यवहार अधिकारी बनाने की संभावना है। मैंने एक भी पोस्ट नहीं देखा है कि टेबल ऐप के बिना 'यूआईआरफ्रेश कंट्रोल' का उपयोग करने के लिए उनके ऐप को खारिज कर दिया गया था। –

उत्तर

7

मैं किसी भी मौजूदा समाधान तो मैं क्षैतिज लेआउट समर्थन के साथ ODRefreshControl बढ़ा नहीं पा सके:

enter image description here

मैं MonoTouch (सी #) में समाधान की जरूरत है तो मैं स्रोत-पोर्टिंग ODRefreshControl द्वारा शुरू किया और फिर patched it to work साथ क्षैतिज लेआउट।

पूर्ण सी # स्रोत कोड here है, यह उद्देश्य सी
सभी मैंने किया था यहाँ और वहाँ एक उपयोगिता समारोह और कुछ शर्तें जोड़ था उसे वापस बंदरगाह के लिए आसान होना चाहिए।

+1

हाय, क्या आप अपना एक्सटेंशन कोड उद्देश्य-सी के साथ पेश कर सकते हैं? धन्यवाद! – Leo

+0

@Dan कृपया आपके द्वारा बनाए गए कोड को ओब्जे-सी में कृपया प्रदान करें कृपया कृपया – hyd00

1

आप UIScrollViewDelegate विधि को लागू करने

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    CGPoint offset = scrollView.contentOffset; 
    CGRect bounds = scrollView.bounds; 
    CGSize size = scrollView.contentSize; 
    UIEdgeInsets inset = scrollView.contentInset; 
    float y = offset.x + bounds.size.width - inset.right; 
    float h = size.width; 


    float reload_distance = 75; //distance for which you want to load more 
    if(y > h + reload_distance) { 
     // write your code getting the more data 
     NSLog(@"load more rows"); 

    } 
} 
संबंधित मुद्दे