如何增加iphone中特定单元格的行高,并为增加的单元格添加按钮

时间:2012-06-07 09:20:05

标签: iphone objective-c

我有一个应用程序,我在tableview单元格中添加嵌入式youtube视频。在tableview的左侧有一个复选框,用于选择特定视频。当我点击单元格播放特定视频播放的视频时嵌入式视频。但是我希望当我点击youtube webview的完成按钮时,它应该返回到相同的列表页面,并且该特定单元格的行高度应该增加高度,其中有2个按钮。当我点击完成时按钮我能够返回到相同的tableview页面,但问题是播放的视频的行高度没有增加,按钮也不可见。请帮我解决这个问题。谢谢。这是我的代码返回单击视频完成按钮后返回同一个tableview页面:

-(void)playVideo:(NSString *)urlString frame:(CGRect)frame
{
    NSString *embedHTML = @"\ <html><head>\ <style type=\"text/css\">\ body {\ background-color: transparent;\ color: red;\ }\ </style>\ </head><body style=\"margin:0\">\ <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ width=\"%0.0f\" height=\"%0.0f\"></embed>\ </body></html>";
    NSString *html = [NSString stringWithFormat:embedHTML, urlString, frame.size.width, frame.size.height];
    videoView = [[UIWebView alloc] initWithFrame:frame];
    [videoView loadHTMLString:html baseURL:nil];


}


    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


        static NSString *CellIdentifier = @"Cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        if (cell == nil)
        {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];

        }


        ArchiveModal *AM = (ArchiveModal*)[DatafromArchModal objectAtIndex:indexPath.row] ;


        NSLog(@"%i",AM.VideoId);
        [self playVideo:AM.ArchUrl frame:CGRectMake(60, 20, 200, 100)];
        //this function is for embedding video and playing video 
             [[NSNotificationCenter defaultCenter]
         addObserver:self
         selector:@selector(windowNowVisible:)
         name:UIWindowDidBecomeVisibleNotification
         object:self.view.window
         ];


        [[NSNotificationCenter defaultCenter]
         addObserver:self
         selector:@selector(windowNowHidden:)
         name:UIWindowDidBecomeHiddenNotification
         object:self.view.window
         ];




}

-(void)didselectrowAtindexPath
{

    [self playVideo:AM.ArchUrl frame:CGRectMake(60, 20, 200, 100)];

}   

//这是在完成按钮被cliked时调用的通知。当完成按钮被cliked时,我正在调用相同的tableview列表页面。但是我希望当单击完成按钮时应调用相同的页面但是已播放的特定单元格的行高应增加高度,并且还应将2个按钮添加到该特定行。

1 个答案:

答案 0 :(得分:1)

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
   [self addButton];
   return 50; //returns height of row
}    

创建按钮:

-(void)addButton
{
  UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  [button addTarget:self action:@selector(callYourMethod:) forControlEvents:UIControlEventTouchDown];
  [button setTitle:@"Show View" forState:UIControlStateNormal];
  button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
  [view addSubview:button];
  [button release];
}