在UITableViewCell中使用NIAttributedLabel

时间:2013-07-04 09:45:53

标签: ios uitableview nimbus

问题:在NIAttributedLabel中使用UITableViewCell使用操作(点击,导航)

  1. 在标签中添加链接
  2. 向单元格添加标签
  3. 使用操作点按
  4. 将单元格添加到模型中

    问题是,如果我触摸链接上的标签,它实际上不会显示链接,而是执行点按操作。 但是,如果我以相同的方式在UIButton中添加UITableViewCell,则不会发生操作,并且当我触摸按钮时按钮响应。 所以我想这是标签的问题。 我该如何解决?

    我终于弄明白了;

    1. 将功能添加到文件NIAttributedLabel.m

      -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
           // never return self. always return the result of [super hitTest..].
           // this takes userInteraction state, enabled, alpha values etc. into account
           UIView *hitResult = [super hitTest:point withEvent:event];
      
           // don't check for links if the event was handled by one of the subviews
           if (hitResult != self) {
               return hitResult;
           }
      
           if (self.explicitLinkLocations || self.detectedlinkLocations) {
               BOOL didHitLink = ([self linkAtPoint:point] != nil);
               if (!didHitLink) {
                   // not catch the touch if it didn't hit a link
                   return nil;
               }
           }
           return hitResult;
      }
      
    2. 删除所有touchXXX中的所有[超级触控XXXX]功能;

    3. 然后,它有效!

0 个答案:

没有答案