在UIimageview图层的边框和内容之间添加空格

时间:2012-08-08 13:47:18

标签: iphone objective-c ios xcode

您好我的CALayer内容有图片。现在我需要添加Tap手势。怎么可能请给出任何添加Tap for CALayer的例子。

这是我的代码:

CALayer *imageLayer=[CALayer layer];
imageLayer.frame=frame;
imageLayer.cornerRadius=10.0;
imageLayer.borderWidth=2.0;
imageLayer.borderColor=[UIColor colorWithRed:0.957 green:0.957 blue:0.957 alpha:1].CGColor;
CALayer *imagecontent=[CALayer layer];
imagecontent.frame=CGRectMake(16, 26, 153, 153);
UIImage *image=[self.pageImages objectAtIndex:page];
imagecontent.contents=(id)image.CGImage;
imagecontent.masksToBounds = YES;   
[imageLayer addSublayer:imagecontent];
[self.scrollView.layer addSublayer:imageLayer];

在这里,我想为“图片内容”添加点按手势,请帮帮我。

2 个答案:

答案 0 :(得分:1)

您无法向图层添加手势识别器,因此您需要将手势识别器添加到其包含的视图中,然后执行其他测试以查看该点击是否恰好与相关图层重叠。

将抽头手势识别器添加到图层的父视图(假设它被称为parentView),然后将此代码添加到手势识别器的选择器中:

- (void)handleTap:(UITapGestureRecognizer *)sender {
    CGRect layerFrame = CGRectMake(16, 26, 153, 153);
    CGPoint tapPoint = [sender locationInView:parentView];
    if (CGRectContainsPoint(layerRect, tapPoint)) {
        // The tap happened inside the rectangle of your layer
        ...
    }
}

答案 1 :(得分:0)

您也可以在CALayer上执行hitTest:来检查您是否正在点击该图层。 只需查看苹果文档以获取最新信息。