【问题标题】:How to increase area that allows tapping on tableviewcell image?如何增加允许点击 tableviewcell 图像的区域?
【发布时间】:2013-07-08 09:29:00
【问题描述】:

我有一个表格视图单元格,该单元格的图像视图中有一个自定义图像。但是,有时如果您点击图像(复选框),它会点击实际单元格而不是图像。我想这样做,如果您点击图像周围的部分单元格,则会选中复选框而不是实际的单元格。我该怎么做?

这是一些代码..

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
cell.imageView.image = [UIImage imageNamed:@"unchecked.png"];

图片为 28x28 图片。

【问题讨论】:

    标签: iphone ios objective-c uitableview uitapgesturerecognizer


    【解决方案1】:

    解决这个问题的一个简单方法是增加单元格图像视图的宽度。

    【讨论】:

    • 您究竟是如何访问该属性的?好像是只读的
    • 等等,我可以使用 cell.imageview.frame 吗?
    • 您应该子类化单元格并覆盖 layoutSubviews 方法。在方法内部,将 imageView.frame 设置为您希望的任何值。
    • 另外,如果您使用的是 Sensible TableView 框架,您可以只使用单元格操作而不是子类化单元格。
    • 你确定你改变了 layoutSubviews 中的框架吗?
    【解决方案2】:

    可能最简单的方法是创建UITapGestureRecognizer 并将其添加到cell.contentView,使用与图像点击相同的选择器。

    【讨论】:

    • 但我怎么才能只获得部分内容视图?
    • 让我们说一个 60x40 的矩形?
    • 您可以继承UITableViewCell 并设置更大的imageView 大小或保持不变,但在其下方添加另一个UIView 更大的大小。然后将手势识别器添加到它。另一种选择是使用UIControl 而不是UIView 并仅处理内部事件的修饰(无手势识别器)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    相关资源
    最近更新 更多