在自定义 UITableViewCell 的子视图中添加 UIViewController

Posted

技术标签:

【中文标题】在自定义 UITableViewCell 的子视图中添加 UIViewController【英文标题】:Add UIViewController inside a Subview of custom UITableViewCell 【发布时间】:2016-02-18 07:14:39 【问题描述】:

我有一个带有 XIB 的自定义 UITableViewCell。它有一个名为 slideShow 的 webview 和 UIView。我只想在 slideShow UIView 组件中添加一个自定义 uiviewcontroller。这样做时,当我添加ChildViewController 时,它崩溃了。

我可以将此 ViewController 添加为 self.view 中的子视图。但无法在自定义 tableviewcell 中添加视图

请帮忙..

    self.homePageCell = (SSHomePageCell *)[tableView dequeueReusableCellWithIdentifier:@"SSHomePageCell"];

     if (self.homePageCell == nil)
     
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SSHomePageCell" owner:self options:nil];
    self.homePageCell = [nib objectAtIndex:0];
     

    self.imageShow = (ImageSlideShowViewController *) [storyboard instantiateViewControllerWithIdentifier:@"ImageSlideShow"]; 
    self.imageShow.view.frame = CGRectMake(0, 0, self.homePageCell.imageSlideShowContainerView.frame.size.width, self.homePageCell.imageSlideShowContainerView.frame.size.height); 
    self.imageShow.title = self.title;

 [self addChildViewController:self.imageShow];

 [self.homePageCell.imageSlideShowContainerView addSubview:self.imageShow.view]; 

 [self.imageShow didMoveToParentViewController:self];

    return self.homePageCell;

【问题讨论】:

在单元格中使用 uicontainer 视图,在视图中添加 uiviewcontroller 很容易 请向我们展示您用来使其工作的代码 self.imageShow = (ImageSlideShowViewController *) [storyboard instantiateViewControllerWithIdentifier:@"ImageSlideShow"]; self.imageShow.view.frame = CGRectMake(0, 0, self.homePageCell.imageSlideShowContainerView.frame.size.width, self.homePageCell.imageSlideShowContainerView.frame.size.height); self.imageShow.title = self.title; [自我 addChildViewController:self.imageShow]; [self.homePageCell.imageSlideShowContainerView addSubview:self.imageShow.view]; [self.imageShow didMoveToParentViewController:self];返回 self.homePageCell; 请检查我更新的答案 【参考方案1】:

首先你像这样在 CellForRow 中设置 UIView 的 nib

UIView *View = [[[NSBundle mainBundle] loadNibNamed:"UIView Name" owner:self options:nil] objectAtIndex:0];

View.frame = CGRectMake(0, 0,self.view.frame.size.width,self.view.frame.size.height);

[self.view addSubview:View];

【讨论】:

以上是关于在自定义 UITableViewCell 的子视图中添加 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章

如何在自定义 UITableViewCell 按钮和第二个视图之间创建一个 segue

UIbutton 在自定义 UITableViewCell 中释放

UIImageView 没有出现在自定义 UITableViewCell 中

选择时在自定义 UITableViewCell 中调暗 UIImageView

UIButton 在自定义 UITableviewCell 中没有响应

如何在自定义 TitleView 的子视图上添加子视图