我试图创建一个包含多个图像的自定义视图。我这样做是通过编程方式添加它们。问题是这些子视图相互重叠,我无法找到改变它的方法。我能看到的唯一解决方案就是以编程方式为每个新图像设置帧。如果有人能告诉我解决这个问题的最佳方法,我将不胜感激。
for (id image in self.images) {
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.imageViews addObject:imageView];
[self addSubview:imageView];
}
答案 0 :(得分:3)
如果您想要customView
UICollectionView
UIScrollView
,则需要subviews
并在其中添加int xPosition = 0;
int yPosition =0;
for (id image in self.images) {
if (xPosition>self.view.frame.size.width) {
//give size to every imageView and every time in loop change the location
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(xPosition, yPosition, 50, 50)];
imageView.image = image;
yPosition = yPosition + 50;
[self.view addSubView:imageView];
}
else {
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(xPosition, yPosition, 50, 50)];
imageView.image = image;
xPosition = xPosition + 50;
[self.view addSubView:imageView];
}
}
。每次添加子视图更改框架位置时,它都可能是这样的:
var productviewmodel = (from a in dbo.ProductReviews
where a.ProductID ==id
select new ProductViewModel
{
ReviewId=a.ReviewId,
ProductID=a.ProductID,
ReviewTitle =a.ReviewTitle,
ReviewMessage =a.ReviewMessage,
Rating =a.Rating,
CustomerName =a.CustomerName,
ReviewStatus=a.ReviewStatus
}).FirstOrDefault();
答案 1 :(得分:2)
不使用Interface Builder,您唯一真正的选择是更改框架或中心。
id
此方法可让您调整大小和移动,而更改中心可让您执行此操作,移动视图的中心。
或
imageView.frame = CGRectMake(x coord, y coord, width, height);
或者建议添加约束。