从滚动视图添加多个图像
Posted
技术标签:
【中文标题】从滚动视图添加多个图像【英文标题】:Adding multiple images from a scrollview 【发布时间】:2015-03-19 09:02:18 【问题描述】:我需要从滚动视图中选择多个图像。
如果我触摸该图像,它会显示一个选择勾号(复选);如果我再次触摸它,它将被取消选择。
现在我是这样做的:
我希望这样当我点击该特定图像时,它会显示一个勾号(复选);如果我触摸第二个,那么它会为此图像显示一个勾号(检查),就像我们从相机胶卷中选择图像一样。
所以,请尽快帮助我。
以下是我的代码:
-(void)listimagesandanmae
int myFavV = [favCompcamelIDArr count];
for (int i = 0; i < myFavV; i++)
CGFloat xOrigin = i * 100;
favimageView = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin+20,10,70,70)];
favimageView.layer.cornerRadius = favimageView.frame.size.width / 2;
favimageView.clipsToBounds = YES;
// imageView.layer.cornerRadius = 60;
// imageView.clipsToBounds = YES;
favimageView.tag=i;
NSInteger tag = favimageView.tag;
// then do what you want with this
if (([favCompcamelIDArr count] >0) )
favnamelistingLbl=[[UILabel alloc]initWithFrame:CGRectMake(xOrigin+23,90,90,27)];
favnamelistingLbl.textAlignment = NSTextAlignmentCenter;
favnamelistingLbl.tag=i;
NSLog(@"%lu",(unsigned long)[favcompnsmeArr count]);
if (([favCompcamelIDArr count] > 0) )
favnamelistingLbl.text=[favcompnsmeArr objectAtIndex:i];
[_selectCamelFav addSubview:favnamelistingLbl];
UITapGestureRecognizer *tappedmyFav = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tappedmyFav:)];
tappedmyFav.numberOfTapsRequired = 1;
[favimageView addGestureRecognizer:tappedmyFav];
NSLog(@"%ld",(long)tag);
NSString *urStCam=@"http://192.8.1.42:/da/";
NSString *urStCam1=[urStCam stringByAppendingString:[favcompictureArr objectAtIndex:i]];
NSString *urStCam2= [urStCam1 stringByReplacingOccurrencesOfString:@"\n" withString:@""];
[caArray addObject:urStCam2];
NSLog(@"%@",caArray);
NSURL *newUrl=[NSURL URLWithString:[caArray objectAtIndex:i]];
NSData *imageDatash = [NSData dataWithContentsOfURL:newUrl];
UIImage *image123 = [UIImage imageWithData:imageDatash scale:2.0];
[favimageView setImage:image123];
[_selectCamelFav addSubview:favimageView];
favimageView.userInteractionEnabled = YES;
_selectCamelFav.contentSize = CGSizeMake(myFavV * 210, 171);
[_indicatorA startAnimating];
_indicatorA.hidden=YES;
- (void)tappedmyFav:(UITapGestureRecognizer*)tap
UITapGestureRecognizer *gesture = (UITapGestureRecognizer *) tap;
【问题讨论】:
为什么不使用UICollectionView
或UITableView
。这会容易得多。
【参考方案1】:
你应该继承 UIView。然后添加 UIImageView、UILabel(复选标记)和一个属性来控制 UIView 是否被选中。还添加 Tap 手势处理程序(selected = !selected when taped)
要搜索选择了哪个视图,请在滚动视图中搜索“选定”的 UIView 对象。或者您可以在对象被“选中/未选中”时维护自己的列表,这样您就不需要搜索所有对象。
【讨论】:
以上是关于从滚动视图添加多个图像的主要内容,如果未能解决你的问题,请参考以下文章
从服务器获取多个 url 图像并在 iphone 的滚动视图中显示