基本上,我正在製作一個使用可用事件的日曆應用程序。ios:是否有一個函數在您更改可用節時調用?
該設置基本上是一個在uitableview之上的酒吧,其中酒吧有一個7天的7個部分。當您滾動查看活動時,我想要更改欄以反映您正在查看的那一天。這就像幻想一樣。
是否有一個函數在段落標題碰到屏幕頂部時被調用?
謝謝!
基本上,我正在製作一個使用可用事件的日曆應用程序。ios:是否有一個函數在您更改可用節時調用?
該設置基本上是一個在uitableview之上的酒吧,其中酒吧有一個7天的7個部分。當您滾動查看活動時,我想要更改欄以反映您正在查看的那一天。這就像幻想一樣。
是否有一個函數在段落標題碰到屏幕頂部時被調用?
謝謝!
,誰想要做到這一點在未來,這是我做的。 蒂姆的答案不起作用,因爲即使您滾動,零點始終位於表格的頂部。所以,我用他的「sectionAtTop」的想法
NSIndexPath *indexPath = [[self.tableView indexPathsForVisibleRows]objectAtIndex:0];
sectionAtTop = indexPath.section;
這需要可見的第一個單元格,並採取它的索引路徑。這工作,但我需要把它放在一個地方,它會更新得當。最後我把它放在
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
但是,這帶來另一個問題,因爲某些原因scrollviewdidscroll正在填充我的細胞之前被調用,因此它結束了(在索引0無對象)
崩潰的應用程序所以我創建了一個名爲「tableDidLoad」的布爾值並將其設置爲NO。然後,在單元格完成填充的代碼的底部,我將boolean tableDidLoad設置爲true。所以,我的代碼看起來像
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (tableDidLoad) {
NSIndexPath *indexPath = [[self.tableView indexPathsForVisibleRows]objectAtIndex:0];
sectionAtTop = indexPath.section;
[self changeDOW];
}
}
其中changeDOW是所謂的與不期望的方法調用switch語句的功能。
比方說你有一個叫sectionAtTop
屬性,那麼這樣的事情應該工作:
- (void)setSectionAtTop:(NSInteger)sectionAtTop
{
if (_sectionAtTop != sectionAtTop) {
_sectionAtTop = sectionAtTop;
// update the top bar here with the new section number
}
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:CGPointZero];
self.sectionAtTop = indexPath.section;
}
沒有結束工作,但帶領我走向正確的方向。謝謝! – cwRichardKim
啊,是的,你說得對。在表視圖的邊界而不是框架中指定了忘記點。 –
也許實現'tableView:willDisplayHeaderView:forSection:'並檢查標題視圖的框架來確定它的位置。 – Paulw11