2012-02-06 25 views
7

में अधिक पंक्तियों के दौरान स्क्रीन पर दिखाई देने के लिए विशिष्ट UITableViewCell को कैसे बनाया जाए, मेरे पास तालिका दृश्य में 20 पंक्तियां हैं, और मैंने स्क्रीन के आधे (आईबी का उपयोग करके) में UITableView डिज़ाइन किया है (या आकार बदलना है) आधा स्क्रीन मैं विशेष UITableViewCell से संबंधित सामान दिखा रहा हूं। आधे स्क्रीन में कौन से सेल के विवरण दिखाए जा रहे हैं, रनटाइम का फैसला किया जाता है। मैं चाहता हूं कि दूसरा अंतिम सेल कहने के लिए दृश्य लोड करते समय सेल दिखाई दे।UITableView

मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर

11

UITableView वर्ग प्रदान करता है:

-(void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath 
      atScrollPosition:(UITableViewScrollPosition)scrollPosition 
        animated:(BOOL)animated; 

जो होने के लिए आप के लिए क्या देख रहे है।

+(NSIndexPath *)indexPathForRow:(NSInteger)row inSection:(NSInteger)section; 
7

scrollToRowAtIndexPath:atScrollPosition:animated: का प्रयास करें::

NSUInteger indexArray[] = {1,15}; 
NSIndexPath *indexPath = [NSIndexPath indexPathWithIndexes:indexArr length:2]; 
[yourTableView scrollToRowAtIndexPath:indexPath atScrollPosition: UITableViewScrollPositionTop animated:YES]; 
+0

मदद के लिए धन्यवाद ..., – Krishna

15

मैं सबसे आसान तरीका यह सुनिश्चित करें कि एक पूरे सेल दिख रहा है पाया जाता है सुनिश्चित करने के लिए tableview पूछने के लिए

NSIndexPath वस्तु का उपयोग कर बनाया जा सकता है कि सेल के लिए रेक्ट दृश्यमान है:

[tableView scrollRectToVisible:[tableView rectForRowAtIndexPath:indexPath] animated:YES]; 

एक आसान इसका परीक्षण करने का तरीका सिर्फ -(void)tableView:didSelectRowAtIndexPath: में डालना है - किसी भी सेल को टैप करने पर इसे आंशिक रूप से छुपाए जाने पर इसे स्थानांतरित कर दिया जाएगा। निको teWinkel का जवाब है, जो मेरे लिए सबसे अच्छा काम किया

+2

यह मैं के लिए उपयोगी था। यद्यपि एक चेतावनी ... यदि आपके पास गतिशील सेल ऊंचाई है (उदाहरण के लिए ऊंचाई चयन बदलता है IeelectRowAtIndexPath), तो आपको तालिका के नीचे अतिरिक्त पैडिंग की आवश्यकता होगी। –

+0

वास्तव में यह सूचकांक पथ पर स्क्रॉल करने के लिए वास्तविक विधि से कहीं बेहतर काम करता प्रतीत होता है –

1

स्विफ्ट 4 संस्करण:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     tableView.scrollToRow(at: indexPath, at: .middle, animated: true) //scrolls cell to middle of screen 
}