我使用滚动视图以横向方式显示各种项目。
我如何“重用细胞”来节省记忆:
编辑:抱歉不清楚。我计划在每个ImageView中放置一些标签和另一个ImageView,所以我每次都希望重复使用它,而不是每次都实例化新项目。例如更改图像并更新标签而不是重新创建它。
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[super viewDidLoad];
// load all the images from our bundle and add them to the scroll view
// NSUInteger i;
for (int i = 0; i <= 150; i++)
{
NSString *imageName = @"tempImage.jpg";
UIImage *image = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
// setup each frame to a default height and width, it will be properly placed when we call "updateScrollList"
CGRect rect = imageView.frame;
rect.size.height = kScrollObjHeight;
rect.size.width = kScrollObjWidth;
imageView.frame = rect;
imageView.tag = i; // tag our images for later use when we place them in serial fashion
[self.bestSellScrollView addSubview:imageView];
[imageView release];
}
[self layoutScrollImages]; // now place the photos in serial layout within the scrollview
}
- (void)layoutScrollImages
{
UIImageView *view = nil;
NSArray *subviews = [self.bestSellScrollView subviews];
// reposition all image subviews in a horizontal serial fashion
CGFloat curXLoc = 0;
for (view in subviews)
{
if ([view isKindOfClass:[UIImageView class]] && view.tag > 0)
{
CGRect frame = view.frame;
frame.origin = CGPointMake(curXLoc, 0);
view.frame = frame;
curXLoc += (kScrollObjWidth);
}
}
// set the content size so it can be scrollable
[self.bestSellScrollView setContentSize:CGSizeMake((150 * kScrollObjWidth),
[self.bestSellScrollView bounds].size.height)];
}
答案 0 :(得分:0)
如果你的意思是你想让UIImageView(s)保持在滚动视图中,但是你想要更改它们显示的UIImage,请尝试这样的事情:
-(void)changeImageViewWithTag:(NSInteger)aTag toImage:(UIImage *)anImage
{
UIImageView *theView = [self.bestSellScrollView viewWithTag:aTag];
if (theView)
{
[theView setImage:anImage];
}
}
答案 1 :(得分:0)
我假设您打算在UIScrollView中重用UIImageView单元实例。 我希望 Daniel Tull的实施可能会有所帮助 -
https://github.com/danielctull/DTGridView
您可能也希望在UIScrollView上看到Apple示例代码(我没有链接,但您可以在网上轻松找到它)
谢谢! Ishank
答案 2 :(得分:0)
如果您的意思是在UITableView中对UITableViewCell的影响,那么它在水平滚动条中是不可能的。
表视图的可重用单元格属性由系统提供,不适用于水平滚动条。
你必须写自己的逻辑才能实现它!这是一个很好的问题。如果有可能的话,将调整到其他答案。