2012-03-22 25 views
0

我的問題是兩個部分:的iOS - UITableView的自定義框架和自定義單元格從顯示UIPopOver它

第1部分:

我有一個UITableView有4行,當用戶點擊上的任何細胞,它將顯示一個內部UITableView,我已經擴大了主UITableView的大小,然後將內部UITableView

internalTableView = [[InternalApartmentTableViewController alloc] initWithFrame:CGRectMake(0, 44, 550, (([[tableContent objectAtIndex:indexPath.row] count] - 1) * 44))]; 
[cell addSubview:internalTableView]; 

的didSelectedRow是:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
if (selectedInternal != -1) { 
    selectedInternal = -1; 
} else { 
    selectedInternal = indexPath.row; 
    [internalTableView removeFromSuperview]; 
    [internalTableView release]; 
} 
[tableViews reloadData]; 

}

我測試使用少量的行的用於內部UITableView該應用中,高度= 700和一切工作完全,當之間我用一個真正的數據,高度= 2500和數據顯示時,高度出現在= 1000左右,我不需要內部UITableView可滾動,只有主人UITableView是可滾動的。

那麼,我如何擴大UTableView的框架尺寸呢?

第2部分:

在內部UITableView,我使用的是含有標籤和圖像和2個按鈕,其中一個按鈕自定義單元格單擊時,我想告訴從那裏一個UIPopOver是的,我不能確定在視圖按鈕的地方,其實我無法弄清楚哪種觀點應我需要使用使用

[popoverController presentPopoverFromRect: //(How can i get the rect for the button) 
        inView: //(in which view should the PopOver appear, master UITableView or Internal UITableView or Custom Cell) 
        permittedArrowDirections:UIPopoverArrowDirectionLeft 
        animated:YES]; 

任何幫助會顯示在屏幕上UIPopOver讚賞。

+1

嵌入等麻煩另一個聲音內部的一個表視圖。蘋果建議處理像這樣的案例(在去年的WWDC的一些[示例代碼](https://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html)中有介紹)將增加更多行...你可能會發現更容易。 – rickster 2012-03-22 06:22:55

+0

+1你@rickster,然後問題的第一部分被解決(原則上),那麼第二部分呢? – Scar 2012-03-22 09:31:28

+1

好吧,不再有內部表格視圖,所以彈出窗口不會從那裏出現。 :)可能(以前外表)視圖是你想要的。 – rickster 2012-03-22 16:01:41

回答

1

// BTN定製單元的當按壓

if(![tempPopover isPopoverVisible]) 
{ 

    UIButton* btn=(UIButton *)sender; 
    NSIndexPath*indexpath=[NSIndexPath indexPathForRow:btn.tag inSection:0]; 
    cell=(customCell *)[tableView cellForRowAtIndexPath:indexpath]; 

     popoverController *objView = [[popoverController alloc] init]; 

     tempPopover = [[UIPopoverController alloc] initWithContentViewController:objView]; 
     [tempPopover setPopoverContentSize:CGSizeMake(160, 160)]; 
     [tempPopover presentPopoverFromRect:CGRectMake(655, cell.contentView.frame.origin.y-105, 150, 150) inView:cell.contentView permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 

}