我已经在过去几天里在互联网上搜索了很久,但没有任何结果。不幸的是,苹果关于这个具体问题的文档很模糊,也没有可用的示例代码(至少这是我发现的)。你可能会问出现了什么问题...
以下是该层的代码:
编辑
更奇怪的是,如果我使用以下代码捕获视图的UIImage:
“并将其用作扩散的内容...一切都完美地解决了?这真的很奇怪和令人沮丧,因为图片的大小与uiview的大小完全相同...”
编辑2:
最终我只使用了一个视图的图像作为纹理,这使得事情比我需要的更加静态。我不会将其设置为答案,因为即使在很长时间内也会等待正确的解决方法。所以,如果你有一个答案,并且这个主题已经开放了很长时间,请尽可能地推动它。这部分的文档真的太差了。
我正在尝试将一个uiview的层设置为用于渲染iPhone模型屏幕的材质的内容(没错,这很奇妙:P)。iPhone屏幕的UV映射被设置为0到1,以便在将纹理/层映射到texels时不会出现问题。
所以,我没有像左图那样在iPhone上呈现出这个层,而是像右图那样呈现出来。
正确的呈现 错误的呈现
请注意,当我设置了断点并调试实际的 iPhone 节点,并在 Xcode 中查看时,会显示完全不同的渲染,并且当我继续执行时,图层被半固定。 那么...我该如何解决这个问题???我尝试过修改扩散内容的转换矩阵,但是什么都没有被修复。我还尝试将UIView调整为256x256(因为在Blender中UV似乎是256x256), 但这也没有修复任何问题。以下是该层的代码:
UIView *screen = [[UIView alloc] initWithFrame:self.view.bounds];
screen.backgroundColor = [UIColor redColor];
UIView *temp = [[UIView alloc] initWithFrame:CGRectMake(0, 0, screen.bounds.size.width, 60)];
temp.backgroundColor = [UIColor colorWithRed:0 green:(112.f/255.f) blue:(235.f/255.f) alpha:1];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectInset(temp.bounds, 40, 0)];
label.frame = CGRectOffset(label.frame, 40, 0);
label.textColor = [UIColor colorWithRed:0 green:(48.f/255.f) blue:(84.f/255.f) alpha:1];
label.text = @"Select Track";
label.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:30];
label.minimumScaleFactor = 0.001;
label.adjustsFontSizeToFitWidth = YES;
label.lineBreakMode = NSLineBreakByClipping;
[temp addSubview:label];
UIView *separator = [[UIView alloc] initWithFrame:CGRectMake(0, temp.bounds.size.height - 2, temp.bounds.size.width, 2)];
separator.backgroundColor = [UIColor colorWithRed:0 green:(48.f/255.f) blue:(84.f/255.f) alpha:1];
[temp addSubview:separator];
[screen addSubview:temp];
screen.layer.contentsGravity = kCAGravityCenter;
编辑
更奇怪的是,如果我使用以下代码捕获视图的UIImage:
- (UIImage *) imageWithView:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
“并将其用作扩散的内容...一切都完美地解决了?这真的很奇怪和令人沮丧,因为图片的大小与uiview的大小完全相同...”
编辑2:
最终我只使用了一个视图的图像作为纹理,这使得事情比我需要的更加静态。我不会将其设置为答案,因为即使在很长时间内也会等待正确的解决方法。所以,如果你有一个答案,并且这个主题已经开放了很长时间,请尽可能地推动它。这部分的文档真的太差了。