gpt4 book ai didi

iphone - 使用 UIPanGestureRecognizer 在 View 周围移动子层是个不错的选择吗?

转载 作者:行者123 更新时间:2023-11-28 22:49:55 25 4
gpt4 key购买 nike

我有一个 CALayer,作为这个 CALayer 的子层,我添加了一个包含分辨率为 276x183 的图像的 imageLayer。

我在主视图中添加了一个 UIPanGestureRecognizer 并计算了 CALayer 的坐标,如下所示:

- (void)panned:(UIPanGestureRecognizer *)sender{

subLayer.frame=CGRectMake([sender locationInView:self.view].x-138, [sender locationInView:self.view].y-92, 276, 183);

}

在 viedDidLoad 中我有:

subLayer.backgroundColor=[UIColor whiteColor].CGColor;
subLayer.frame=CGRectMake(22, 33, 276, 183);

imageLayer.contents=(id)[UIImage imageNamed:@"A.jpg"].CGImage;
imageLayer.frame=subLayer.bounds;
imageLayer.masksToBounds=YES;
imageLayer.cornerRadius=15.0;

subLayer.shadowColor=[UIColor blackColor].CGColor;
subLayer.cornerRadius=15.0;
subLayer.shadowOpacity=0.8;
subLayer.shadowOffset=CGSizeMake(0, 3);
[subLayer addSublayer:imageLayer];
[self.view.layer addSublayer:subLayer];

它给出了所需的输出,但在模拟器中有点慢。我还没有在设备中测试过它。所以我的问题是 - 可以移动包含图像的 CALayer 吗??

最佳答案

是的,可以移动包含图像的 CALayer。

如果您想用平移手势做的只是移动图像,那么您应该只更新图层的 position 属性,而不是更新整个 frame。像这样:

- (void)panned:(UIPanGestureRecognizer *)sender {
subLayer.position=CGPointMake([sender locationInView:self.view].x, [sender locationInView:self.view].y);
}

关于iphone - 使用 UIPanGestureRecognizer 在 View 周围移动子层是个不错的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12258560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com