मैं एक टेबलव्यू ऑफसेट को एनिमेट करने की कोशिश कर रहा हूं, फिर पूरा होने पर ब्लॉक इसे वापस ले जाएगा। लेकिन मेरा कोड पूरा होने में कुछ भी नहीं कर रहा है ब्लॉक:UIView एनिमेट और समापन ब्लॉक
-(void)viewDidAppear:(BOOL)animated {
if (TRUE) {
NSLog(@"animating table view");
[UIView animateWithDuration:.25
animations:^{
self.tableView.contentOffset = CGPointMake(self.tableView.contentOffset.x, self.tableView.contentOffset.y - 60);
}
completion:^(BOOL finished){
NSLog(@"completion block");
}];
}
}
"समापन ब्लॉक" कभी भी आउटपुट नहीं हो जाता ... कोई विचार?
संपादित करें:
ठीक है, तो यह मेरी UIREfreshControl के साथ कुछ है:
- (void)viewDidLoad
{
[super viewDidLoad];
if (TRUE) {
UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
[refresh addTarget:self action:@selector(refreshTableView:) forControlEvents:UIControlEventValueChanged];
[self setRefreshControl:refresh];
}
}
जब ताज़ा नियंत्रण जोड़ा जाता है, यह पूरा होने के ब्लॉक से सक्रिय नहीं होगा। अगर मैं नियंत्रण नहीं जोड़ता, तो यह इरादे के रूप में काम करता है।
संपादित करें 2:
कश्मीर, इसलिए यदि मैं तालिका दृश्य स्क्रॉल करें, पूरा होने के ब्लॉक तो निकाल दिया जाता है:
2013-02-15 13:37:06.266 [1922:14003] animating table view
2013-02-15 13:37:14.782 [1922:14003] completion block
कोड के रूप में सही होने के बाद "animating तालिका लिखा" पूरा होने के ब्लॉक "लॉग इन करना चाहिए देखें ", लेकिन इसमें 8 सेकंड देरी का कारण है जब मैंने टेबल को स्क्रॉल किया था।
कैसे "ताज़ा करने के लिए खींचें" लगता है:
सिर्फ परीक्षण परियोजना पर अपने कोड tryed, और ' समापन ब्लॉक 'को कंसोल पर आउटपुट किया गया है। आपने इसे सिम्युलेटर या डिवाइस पर आज़माया है। आप किस आईओएस संस्करण का इस्तेमाल करते हैं, एक्सकोड संस्करण? – jamapag
सिम्युलेटर, आईओएस 6.1, एक्सकोड 4.6। आपने इसे' viewDidAppear: 'विधि में किया है? – Padin215
हम्म, मैं एक ही सेटअप है। क्या 'viewDidAppear' कहा जाता है? – jamapag