【问题标题】:Highlight UITableViewCell on touch event in a composite UIView在复合 UIView 中的触摸事件上突出显示 UITableViewCell
【发布时间】:2012-07-03 12:12:25
【问题描述】:

我有一个 UITableViewCell,它由一个子容器 UIView 和一些其他子组件组成,例如标签、背景、图标等... 每个 UIImageView 在 Xcode IB 中也有一个高亮图像集。

单元格组装在 UIStoryBoard 中,并有一个连接到它的 segue,因此我没有使用委托的典型 didSelect 方法。 这是层次结构:

UIViewController (serving as UITableView delegate)
--> UIView (main view)
    --> UITableView
        --> UItableViewCell
            --> UIView
                --> (several UIView, image, label, etc..)

我想知道如何在这种情况下选择我的单元格。突出显示整个单元格对我来说很好,但我也有兴趣了解如何进行特定选择。

对于选择/突出显示,我的意思是忘记标准的蓝色或灰色选择,而是回忆我在 IB 中标记为“突出显示”的所有特定图像。

平台目标是 iOS 5。

谢谢

【问题讨论】:

  • 您的情节提要中有一个UITableViewCell,而不是在任何类型的控制器中?
  • 是的,UITableView 中的 UITableViewCell。
  • 那么它在表格视图控制器中?听起来您只需要对其进行子类化。
  • 不知道是否重要,但它只是一个 UIViewController 设置为委托和数据源。不是 UITableViewController。
  • 所以你想在用户触摸它的特定部分时突出显示这个复合表格单元格?

标签: objective-c uitableview xcode4.3 uistoryboard


【解决方案1】:

你的 UIViewController 文件应该实现 UITableViewDelegateUITableViewDataSource

@interface NameOfViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

然后您可以覆盖表的方法。听起来您想覆盖didSelectRowAtIndexPath。我仍然有点不清楚你到底想要做什么,但听起来你只会使用这个方法,要么告诉单元格它被突出显示,要么向单元格传递一条消息告诉它做某事(比如改变它的图像) .如果您想这样做,您还需要对您的单元进行子类化并从 .xib 文件中加载它。对不起,如果这听起来像很多工作,但表格视图需要大量代码才能进行自定义,而不是非常基本的东西。

【讨论】:

  • 是的,唯一的解决方案似乎是调用 mybackground.highlight=YES 等等,这必须在 didSelectRow 中完成...
猜你喜欢
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-03
  • 2011-05-01
  • 2010-12-02
  • 1970-01-01
相关资源
最近更新 更多