对象C-在视图中以程序方式并排显示创建的图像视图



我使用下面的代码循环遍历一个图像URLS数组,并为返回的每个url创建UIImageView。也就是说,所有的图像都在我的视野中一个接一个地显示。

如何使每个图像以程序方式并排显示?示例彼此右侧大约10px?

NSMutableArray *photos = [self.filteredDataMeetUps valueForKey:@"photo_path"];
for (id object in photos) {
self.myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(37, 515, 40, 40)];
[self.myImageView sd_setImageWithURL:[NSURL URLWithString:object]];
[self.scrollView addSubview: self.myImageView];
self.myImageView.layer.cornerRadius = self.myImageView.frame.size.height /2;
self.myImageView.layer.borderColor = [[UIColor whiteColor] CGColor];
self.myImageView.layer.borderWidth = 0.0f;
self.myImageView.layer.masksToBounds = YES;            
}

好吧…这里有多个错误。所以我的第一个建议是买本书开始学习。

代码中的问题:

  • 您总是在同一个UIImageView(self.myImageView(中更改图像。您应该为每张照片创建一个新的UIImageView
  • 您总是设置同一帧。对于每个UIImageView,都应该设置正确的帧。换句话说,如果你要把它们一个接一个地显示出来,你应该改变帧的X值
  • 更好的方法是使用约束而不是框架
  • 最好的方法是将UICollectionView与自定义UICollectionViewCell一起使用

其他事实:

  • 在您的代码中,您使用id object进行迭代,而不是使用正确的类:NSString *urlStr
  • 我建议您:在数组声明中添加泛型

像这样的问题往往得不到答案,因为显然有多个非常基本的问题,很明显,你需要研究iOS和ObjC(或Swift(开发的基础,以及通用编程中的更多内容。

最新更新