iphone - 如何向一个 UIView 添加多个 UIImageView;从图像列表中
<p><p>我想在 <code>UIView</code> 中添加多个 <code>UIImageView</code>。 </p>
<p>我正在构建一个 View ,然后成功保存到库中。我从相机或库中添加一张图片作为背景,然后在其上添加多张图片;来自 <code>TableListController</code>。
在 <code>viewDidLoad</code> 我为每个可用图像编写每个 <code>UIImageView</code> ;并且 View 只出现在用户从 <code>TableListController</code> 挑选的图像上。</p>
<p>这是一个有限的解决方案。当用户选择相同的图像时;图像被覆盖。我希望能够在 View 上复制图像。</p>
<p>我想为用户选择的每个图像编写一个 <code>UIImageView</code> 并让它们留在 View 上。</p>
<p>如何在<code>UIView</code>中添加多个<code>UIImageViews</code>;从 <code>TableListController</code> 中挑选的图像?</p>
<p>这就是我现在所拥有的。我需要一个更动态的解决方案。</p>
<pre><code>CGRect myFrame = CGRectMake(0,-20,320,480);
self.createView = [ initWithFrame:myFrame];
self.createView.backgroundColor = ;
;
self.bgImgView = [ initWithImage:image];
self.bgImgView.frame = CGRectMake(0,0,320,480);
;
NSData *imageDataz = [ objectForKey:@"catzero-item-0"];
UIImage *myPickZero = ;
UIImageView *test0 = [ initWithImage:(UIImage *)myPickZero];
test0.frame = CGRectMake(0,0,320,480);
;
NSData *imageDatao = [ objectForKey:@"catzero-item-1"];
UIImage *myPickOne = ;
UIImageView *test1 = [ initWithImage:(UIImage *)myPickOne];
test1.frame = CGRectMake(0,0,320,480);
;
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>如果你想做一些更动态的事情,你可以这样做:</p>
<pre><code>CGRect frame = self.view.bounds; // probably better to get the parent's bounds, rather than hardcoding frame dimensions
CGRect myFrame = frame;
myFrame.origin.y -= 20; // I'm not sure why you're offsetting this by 20, but you really do, grab the superview's bounds and offset it
self.createView = [ initWithFrame:myFrame];
self.createView.backgroundColor = ;
;
self.bgImgView = [ initWithImage:image];
self.bgImgView.frame = frame;
;
self.imageViews = [ init];
NSUserDefaults *userDefaults = ;
NSInteger i = 0;
NSData *data;
while ((data = ]) != nil)
{
UIImage *image = ;
UIImageView *imageView = [ initWithImage:image];
imageView.frame = frame;
;
;
}
</code></pre>
<p>这将读取以 <code>@"catzero-item-"</code> 为前缀的键的图像并为它们创建 ImageView 。我还将单独的 <code>UIImageView</code> 引用保存到我创建的 <code>NSMutableArray</code> 属性 <code>imageViews</code> 中。是否这样做取决于您。</p>
<p>话虽如此,您的部分代码我不太明白:例如,每个 <code>UIImageView</code> 都有相同的框架...我不知道您为什么要创建图像会被彼此遮挡的 View ,但这取决于您。</p>
<p>我也不倾向于将图像数组存储在 <code>NSUserDefaults</code> 中,但这又取决于您。我可能倾向于使用 <code>CoreData</code> 或 <code>SQLite</code> 或 <code>plist</code> 来存储这个图像数组(或者,更准确地说,存储文件名在那里,并将图像保存在 <code>Documents</code> 文件夹中)。但是使用 <code>NSUserDefaults</code> 需要我们遍历假设的键名,这是脆弱的(例如,如果你有 3 张图像,然后去掉第二张……你要重命名所有的键吗?以避免键名中的空白)。但是,如果您使用 <code>plist</code> 或使用 <code>CoreData</code> 或 <code>SQLite</code>,则可以遍历图像集合,而不必担心缺少键名。</p>
<p>无论如何,希望这能让您了解如何更动态地检索图像。</p></p>
<p style="font-size: 20px;">关于iphone - 如何向一个 UIView 添加多个 UIImageView;从图像列表中,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/14017284/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/14017284/
</a>
</p>
页:
[1]