我正在开发一个我需要以下功能的应用程序。
满足以上要求,
我用.xib文件制作了自定义视图。并将其添加到scrollview中。
但无法知道如何异步下载图像并在适当的位置显示它。
我在网格样式中添加自定义视图的代码就在这里。
-(void)LazyLoading_display_Objects_in_grid_style
{
for(int i=0; i<[imageListingArray count] ; i++)
{
NSArray *arr = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:nil options:nil];
MyView *myView = (MyView *)[arr objectAtIndex:0];
myView.frame = CGRectMake(x,y,width,height);
myView.imgPhoto setContentMode:UIViewContentModeScaleAspectFit];
myView.imageURL = [NSString stringWithFormat:@"%@",[[imageListingArray objectAtIndex:i] valueForKey:@"name"]];
[myView setBackgroundColor:[UIColor clearColor]];
if(myView.imgPhoto.image == nil)
[myView.actLoading startAnimating];
[myView.imgPhoto setTag:1000+i];
[myView setUserInteractionEnabled:TRUE];
myView.tag = 100+i;
[self.imageListingScrollView addSubview:myView];
if(current_no_of_object_in_row !=noOfObjectInColumn)
{
x =x + width + 8 ;
current_no_of_object_in_row ++;
}
else
{
current_no_of_object_in_row =1;
x = 5;
y = y+ height + 8 ;
}
scrollView_Height = y;
}
int temp = [imageListingArray count]%noOfObjectInColumn;
if(temp>0)
{
NSLog(@"No modulus");
y = y + height+ 10;
}
scrollView_Height = y;
NSLog(@"Scroll Height : %d",scrollView_Height);
[self.imageListingScrollView setContentSize:CGSizeMake(308, scrollView_Height+ 5)];
}
答案 0 :(得分:1)
您可以选择UITableView,而不是创建多个视图。它既可以用作UIScrollViews,也可以用作网格显示。这个链接可能对您有所帮助:
http://www.markj.net/iphone-asynchronous-table-image/ http://davidgolightly.blogspot.in/2009/02/asynchronous-image-caching-with-iphone.html https://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html
答案 1 :(得分:1)
获取UITableView实例并将其旋转为:
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI/2.0f);
table.transform = transform;
U也可能必须在
中旋转UITableView内的单元格- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI/2.0f);
cell.transform = transform;
}
如果采用UIScrollView,那么你必须处理内存可以查看myquestion
答案 2 :(得分:1)
您可以尝试使用AsyncImageView类。它是UIImage的扩展,允许直接URL的异步下载图像。我在很多项目中使用了类似的扩展。你只需要调用方法
- (void)loadImageWithURL:(NSURL *)URL;
当检索到数据时,图像将出现在此视图中。 https://github.com/nicklockwood/AsyncImageView
如果您为所有iOS用于UITableView的iOS 6+项目,您可以使用UICollectionView类制作网格。 如果您将使用UITableView,您可以在左侧和右侧制作带有两个AsyncImageView对象的自定义单元格。