gpt4 book ai didi

objective-c - (iOS) 如何在另一个 View 中重用 UIImageView?

转载 作者:行者123 更新时间:2023-11-29 04:45:10 24 4
gpt4 key购买 nike

我有一个带有 UIScrollView 的 View Controller ,其中有一堆 UIImageView 作为 subview 。有一个到另一个 View Controller 的segue,但我想重用内存中已经存在的 UIImages,而不是为了效率而再次加载它们。但是,如果我将新的 UIImageView 指向现有的 UIImageView,则不会显示任何内容。

我必须使用中间指针变量(imageViewPointer),就像我直接在prepareForSegue方法中分配它一样,每个 View Controller 的NSLog将显示不同的地址。此解决方法 NSLogs 显示相同的地址,但仍然没有显示任何内容。

如果我使用重新分配 .image 属性,图像会显示,但来自第一个 View Controller 的图像会异步加载,因此 .image 属性可能会更改。

在第一个 View Controller 中

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{

NextViewController *nextViewController = [segue destinationViewController];
nextViewController.imageViewPointer = [[myScrollView subviews] objectAtIndex:myIndex];
NSLog(@"%@", [[myScrollView subviews] objectAtIndex:myIndex]);
}

在第二个 View Controller 中

@interface nextViewController : UIViewController

@property (retain, nonatomic) IBOutlet UIImageView *imageView;
@property (retain, nonatomic) UIImageView *imageViewPointer;

@implementation nextViewController

@synthesize imageView, imageViewPointer;

{
self.imageView = self.imageViewPointer;

// [self.imageView setNeedsDisplay]; Doesn't help

NSLog(@"IMAGE VIEW POINTER = %@", self.imageViewPointer);
NSLog(@"IMAGE VIEW = %@", self.imageView);

[super viewDidLoad];
}

最佳答案

如果您只是分配这样的 View ,它不会出现在当前 View Controller 的 View 的 View 层次结构中。您需要执行以下操作:

[self.view addSubview: imageView];

但是,我不建议这样做。最好将 View 的图像分配给另一个 View 的图像。

self.imageView.image = self.imageViewPointer.image;

关于objective-c - (iOS) 如何在另一个 View 中重用 UIImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9765301/

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