全部,
我需要将图片分配给UITableView。每行都有不同的图片。每行的数据来自一个数据库,该数据库上的一行有一个ID,另一个数据库中的ID是链接的,并且该表中有一个URL用于该图像。
所以在cellforRowAtIndexPath中我们有: NSDictionary * postValues = @ {@“myParam”:apt [@“barID”]};
// Do any additional setup after loading the view, typically from a nib.
self.client = [MSClient clientWithApplicationURLString:@"https://outnight-mobile.azure-mobile.net/" applicationKey:@"okYeRGfBagYrsbkaqWIRObeDtktjkF10"];
[self.client invokeAPI:@"photos"
body:postValues
HTTPMethod:@"POST"
parameters:nil
headers:nil
completion:^(id result, NSHTTPURLResponse *response, NSError *error) {
if (error) {
NSLog(@"Error %@", error );
} else
{
NSString *string = [NSString stringWithFormat:@"%@", [result objectForKey:@"rows"]];
NSString *stringWithoutbracketsend = [string stringByReplacingOccurrencesOfString:@")" withString:@""];
NSString *stringWithoutbracketsfront = [stringWithoutbracketsend stringByReplacingOccurrencesOfString:@"(" withString:@""];
NSString *completion = [stringWithoutbracketsfront stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString *newStr = [completion substringFromIndex:1];
NSString *finalstring = [newStr substringToIndex:newStr.length-(newStr.length>0)];
NSLog(@"%@", finalstring);
[cell.imageView setImageWithURL:[NSURL URLWithString:finalstring] placeholderImage:[UIImage imageNamed:@"greybox40.png"]];
}
}];
它从表中引入了url,这是JSON,我删除了所有标记以获得仅http://blag.com/bah.jpg的字符串'这很容易。 我正在使用SBWebImage将图像放在uitableview异步中,这也很好。将图像放在网址的每一行上的最佳方法是什么? SWITCH声明最好吗?最好使用一组URL,然后显示它们。是否最好从cellforIndexRowPath移动数据库连接?有人可以建议吗?
答案 0 :(得分:0)
首先为uitableview创建一个自定义视图单元格。然后将图像,标签等子视图添加到自定义单元格中。从数据库获取数据到图像数组,ID的数组在tableview委托方法中使用cellforrowatindex代码。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{static NSString * CellIdentifier = @“Cell”;
if(tableView == myTableView){
FirstViewCustomCell * cell =(FirstViewCustomCell *)[myTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil)
{
[[NSBundle mainBundle] loadNibNamed:@“FirstViewCustomCell”所有者:self
选项:无];
cell = customCell;
customCell = nil;
}
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
//从数据库中获取数据。
cell.customimage.image = [imagesarr objectatIndex:indexpath.row];
cell.textlabel.text = [arrayofID objectatIndex:indexpath.row];
}
答案 1 :(得分:0)
单独解析数据......在方法中然后
将图像存储在数组中。如果您想要前三个图像..
如果要在对象中保存图像的网址,然后保存数组..使用下面的代码
for(int i=0;i<3;i++)
{
ImagesObject *Obj=[imagesArray objectAtIndex:i];
[cell.userProfilePicImage setImageWithURL:[NSURL URLWithString:Obj.imageURLString]
placeholderImage:[UIImage imageNamed:@"greybox40.png"]
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType)
{
if (!error && image)
{
}
}];
}
(or) if you are not saving in an object then use below code.
for(int i=0;i<3;i++)
{
NSString *imageURLString=[imagesArray objectAtIndex:i];
[cell.userProfilePicImage setImageWithURL:[NSURL URLWithString:imageURLString]
placeholderImage:[UIImage imageNamed:@"greybox40.png"]
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType)
{
if (!error && image)
{
}
}];
}
希望它对你有所帮助......