- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
也许是因为来晚了。不管是什么原因,我无法弄清楚为什么我在尝试一个简单的 CSScrollLayer 示例时遇到问题。我向基于 View 的项目添加了一个 50 像素的 Eclipse 图标,并在我的初始化方法中(从 initWithNibName:bundle: 调用)我有这个:
-(void) initialize
{
CAScrollLayer *scrollLayer = [CAScrollLayer layer];
scrollLayer.backgroundColor = [[UIColor blackColor] CGColor];
CGRect bounds = self.view.bounds;
scrollLayer.bounds = CGRectMake(0, 0, bounds.size.width, bounds.size.height);
scrollLayer.contentsRect = CGRectMake(0, 0, bounds.size.width + 800, bounds.size.height + 800);
scrollLayer.borderWidth = 2.5;
scrollLayer.borderColor = [[UIColor redColor] CGColor];
scrollLayer.position = CGPointMake(self.view.center.x, self.view.center.y - 20);
scrollLayer.scrollMode = kCAScrollBoth;
[self.view.layer addSublayer:scrollLayer];
UIImage *image = [UIImage imageNamed:@"eclipse32.gif"];
for(int i=0; i<6; i++) {
layer = [CALayer layer];
layer.backgroundColor = [[UIColor blackColor] CGColor];
layer.bounds = CGRectMake(0, 0, 100, 100);
layer.contents = (id)[image CGImage];
layer.position = CGPointMake(layer.bounds.size.width * i, self.view.center.y);
[scrollLayer addSublayer:layer];
}
// [button removeFromSuperview];
// [self.view addSubview:button];
// self.view.userInteractionEnabled = YES;
[image release];
}
滚动层显示,图标在层上重复我在屏幕边缘周围有一个边框。一切都很可爱,除了我无法滚动图标。我试过/不设置滚动模式。我试过使用一个从屏幕上掉下来的拉伸(stretch)图标。我已经尝试了一切。我做错了什么?
最佳答案
CAScrollLayer 不插入 UIEvent 链,因此您需要手动添加代码来修改触摸事件的滚动偏移。像 UIScrollView 那样获得滚动动量也非常棘手。我强烈建议使用 UIScrollView 重新实现——它会非常简单。唯一的选择是手动处理触摸事件,这很痛苦!我尝试使用 CAScrollLayer 获得一个不错的滚动条,但在手动实现了一些笨拙的滚动行为后放弃了。
我在使用 CALayer 或 UIView 时遵循的一般规则是在不需要任何用户交互时使用 CALayer 对象。如果用户要触摸它,请使用 UIView,它是一个非常轻量级的对象,因此开销可以忽略不计。
也就是说,我发现 CAScrollLayer 非常无用!为什么不直接使用 CALayer 并修改边界呢?它可能有一些用处,但它不能替代 UIScrollView。
关于iphone - CAScrollLayer 不滚动!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2331440/
我想让 CAScrollLayer 中的文本从起点滚动到终点,然后重置动画。但是我似乎无法在滚动层中获取 CATextLayer。我什至尝试创建一个 UILabel 并将其层用作滚动层的子层。 这是非
也许是因为来晚了。不管是什么原因,我无法弄清楚为什么我在尝试一个简单的 CSScrollLayer 示例时遇到问题。我向基于 View 的项目添加了一个 50 像素的 Eclipse 图标,并在我的初
我需要一个可滚动的 CATextLayer 来显示 NSAttributedString。有没有办法混合两个图层,或者向 CATextLayer 添加滚动或在 CAScrollLayer 中显示文本?
我是一名优秀的程序员,十分优秀!