gpt4 book ai didi

objective-c - iPad 应用程序 - CALayer 使其在旋转时非常滞后

转载 作者:行者123 更新时间:2023-11-29 13:29:00 25 4
gpt4 key购买 nike

我目前正在开发一个通用应用程序,在我的一个 View Controller 中我有以下 xib:

View
-ImageView
-TableView
-ImageView
-View (called tblviewContainer in the following snippet of code)

在我的 viewdidload 方法中,我制作了一个图层,我将把它放在我的 View (tblviewcontainer) 上,以便屏幕的顶部和底部的某些部分是渐变的。

[tblViewContainer addSubview:self.tableView];
[tblViewContainer sendSubviewToBack:self.tableView];

if (!maskLayer)
{
maskLayer = [CAGradientLayer layer];

UIColor* outerColorSetup = [UIColor colorWithWhite:1.0 alpha:0.0];
UIColor* innerColorSetup = [UIColor colorWithWhite:1.0 alpha:1.0];

CGColorRef outerColor = outerColorSetup.CGColor;
CGColorRef innerColor = innerColorSetup.CGColor;

maskLayer.colors = [NSArray arrayWithObjects:
(__bridge id )outerColor,
(__bridge id)innerColor,
(__bridge id)innerColor,
(__bridge id)outerColor, nil];

maskLayer.locations = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:0.01],
[NSNumber numberWithFloat:0.04],
[NSNumber numberWithFloat:0.8],
[NSNumber numberWithFloat:1.0], nil];

maskLayer.bounds = CGRectMake(0, 0,
self.tableView.frame.size.width,
self.tableView.frame.size.height);

maskLayer.anchorPoint = CGPointZero;

tblViewContainer.layer.mask = maskLayer;

}

在我的应用程序中可以旋转,当我在图层打开时执行此操作时,旋转时速度非常慢/滞后(仅在 ipad 3 上!)。

当我旋转时,我会执行以下操作:(从肖像->风景)

-(void)willRotateToInterfaceOrientation: (UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration
{
if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown)
{

}
else if(orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight)
{
_landscape = [[ipad_VideoListViewController_Landscape alloc] initWithNibName:@"ipad_VideoListViewController_Landscape" bundle:nil];
_landscape.scroolViewContentOffset = scroolViewContentOffset;
[self.view.layer setRasterizationScale:[UIScreen mainScreen].scale];
self.view.layer.shouldRasterize = YES;


NSMutableArray *viewCons = [[[self navigationController]viewControllers] mutableCopy];
[viewCons removeLastObject];
[viewCons addObject:_landscape];
[[self navigationController]setViewControllers:viewCons animated:NO];
}
}

最糟糕的是它在 ipad 2 上完美运行,层处于事件状态,但 ipad 3 似乎无法处理它。它甚至似乎我在 ipad 2 上用动画做的事情(有效),不能在 ipad 3 上处理。例如我制作了自己的 tableview 标题单元格/tableview 单元格,如果我在 ipad 3 上使用它们,它们也会滞后。

如有任何帮助,我们将不胜感激!

最佳答案

我改为添加了一些透明图像并且运行流畅。

不过,如果有人知道为什么这不起作用,我想知道。

必须找到这个解决方案,因为我有最后期限 :)。

感谢迈克尔的评论!

关于objective-c - iPad 应用程序 - CALayer 使其在旋转时非常滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12313387/

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