以编程方式在 UIScrollview 中添加多个 UIImageview
Posted
技术标签:
【中文标题】以编程方式在 UIScrollview 中添加多个 UIImageview【英文标题】:Add multiple UIImageview in UIScrollview programmatically 【发布时间】:2013-01-27 06:16:20 【问题描述】:UIView *view = nil;
NSArray *subviews = [scrollView subviews];
CGFloat curXLoc = 0;
for (view in subviews)
if ([view isKindOfClass:[UIView class]] && view.tag > 0)
CGRect frame = view.frame;
frame.origin = CGPointMake(curXLoc, 0);
view.frame = frame;
curXLoc += (kScrollObjWidth);
我已经放置了一个 Scrollview
,在这个滚动视图中我将 5 个 UIImageview
放置在 XIB 文件中
我有一个图像和一个按钮,每当我单击按钮时,图像都应该以编程方式加载到UIScrollview
中的所有UIImageview
s 中。
我也使用了以下编码
for(UIImageView *addview in Scroll)
if([addview isKindOfClass:[UIImageView class]])
UIImageView *newImage = (UIImageView *)addview;
newImage.image = [UIImage imageNamed:@"EarP010.jpg"];
【问题讨论】:
嗨,Karthik:您添加了一些代码真是太好了……但到目前为止,没人能看到您尝试做的事情。我在代码的任何地方都没有看到任何 UIImageView 引用,聪明的问题应该比几行代码有更多的解释。 【参考方案1】:试试这个,
NSMutableArray * imagesArray = [[NSMutableArray alloc]init];
for (int imageCount = 0; imageCount < (noOfImages);imageCount++)
[imagesArray addObject:[UIImage imageNamed:@"localImagePath%d.png",imageCount]];
UIScrollView * scrollview = [[UIScrollView alloc]initWithFrame:CGRectMake(0.0,0.0,480.0,960.0)];
scrollview.contentSize = CGSizeMake(scrollview.size.width * (noOfImages),scrollview.frame.size.height);
scrollview.pagingEnabled = YES;
CGFloat xPos = 0.0;
for (UIImage * image in imagesArray)
@autoreleasepool
UIImageView * imageview = [[UIImageView alloc]initWithImage:image];
imageview.frame = CGRectMake(xPos, 0.0,scrollview.frame.size.width ,self.scrollView.frame.size.height);
[scrollview addSubview:imageview];
xPos += scrollview.size.width;
【讨论】:
【参考方案2】:使用这个
NSArray* objects = [[NSBundle mainBundle] loadNibNamed:@"your xib name" owner:nil options:nil];
UIView* mainView = [objects objectAtIndex:0];
for (UIView* view in [mainView subviews])
if([view isKindOfClass:[UIImageView class]])
UIImageView *iview = (UIImageView *)view;
iview.image = [UIImage imageNamed:@"your imagename.png"];
【讨论】:
如何在 NSArray 中设置视图【参考方案3】:如果您知道需要多少图像视图,则可以在 while 循环中添加图像视图。
UIScrollView *sv = [UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
....
[self.view addSubView:sv];
int i = 0;
while(i < numberOfImages)
i = i + 200;
UIImageView *i = [UIImageView alloc] initWithFrame:CGRectMake(20, i, 200, 100)]
....
[sv addSubView:i];
i++;
这是您可以使用的一种情况。您将需要知道所需的图像视图数量以及这些图像视图上的 Y 值。这段代码大部分是伪代码,需要填写。
【讨论】:
以上是关于以编程方式在 UIScrollview 中添加多个 UIImageview的主要内容,如果未能解决你的问题,请参考以下文章
在 UIStackView 中以编程方式添加内容时的 UIScrollView 高度
以编程方式将 UILabel 和 UIImageViews 添加到 UIScrollView
在 Swift 中以编程方式添加时,UIScrollView 根本不滚动?
如何以编程方式将自定义 UIView 添加到 UIScrollView 之上的 Stackview?