2011-02-23 97 views
1

我想添加一个单元格的边距。我用不同的方法尝试过很多次,但都失败了。请帮忙!以编程方式在UITableView单元格中添加边距?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 
} 

tableView.rowHeight = 60; 

// InitWithStyle 
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 

// Get Selected Name 
NSString *selectedCountry = [listOfItems objectAtIndex:indexPath.row]; 

// Set up the cell... 
NSString *cellValue = [listOfItems objectAtIndex:indexPath.row];  
cell.text = cellValue; 


NSArray *resultstwoo = [database executeQuery:@"SELECT * FROM albums WHERE name=?", selectedCountry]; 
for (NSDictionary *rowtwoo in resultstwoo) { 
    NSString *connectionsText = [rowtwoo valueForKey:@"connections"]; 
    cell.detailTextLabel.text = connectionsText; 
} 

// Get Selected ID 
NSArray *resultsID = [database executeQuery:@"SELECT * FROM albums WHERE name=?", selectedCountry]; 
for (NSDictionary *rowID in resultsID) { 
NSString *selectedIDtwo = [rowID valueForKey:@"id"]; 

// Get latest picture and Display 
int imagesCount = 0; 
NSArray *listOfItemsTwo = [database executeQuery:@"SELECT * FROM images WHERE album=? ORDER BY id DESC LIMIT 0,1", selectedIDtwo]; 
for (NSDictionary *rowone in listOfItemsTwo) { 
    imagesCount ++; 
    NSString *getDir = @"./../Documents/"; 
    NSString *getID = [rowone valueForKey:@"id"]; 
    NSString *getFile = @"_thumbnail.jpg"; 
    NSString *theImagePath = [NSString stringWithFormat:@"%@%@%@",getDir, getID, getFile]; 
    UIImage *theImage = [UIImage imageNamed:theImagePath]; 

    cell.imageView.layer.masksToBounds = YES; 
    cell.imageView.layer.cornerRadius = 5.0; 
    cell.imageView.image = theImage; 

    //cell.image = [theImage imageScaledToSize:CGSizeMake(38, 38)]; 

    //NSLog(@"%@", theImage); 

} 

// If there is no images in the album, display generic picture 
if (imagesCount == 0) { 
    UIImage *theImage = [UIImage imageNamed:@"noalbumimages"]; 
    cell.imageView.image = theImage; 
    //NSLog(@"%@", theImage); 
} 

} 

return cell; 


} 

再次感谢。

回答

1
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 


UITableViewCell *cell=(UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath]; 
if(cell) 
{ 
return cell.imageView.size.height+10; 
} 
else 
{ 
return 44; //Return any default size you want 
} 
} 

//返回nil如果细胞是不可见的或指数路径超出范围

检查此方法。 找到你得到了什么cell.imageview或cell.image 找到这个图像的高度在这里设置。 这是返回单元格大小的方法。

问候,

希亚姆帕尔马

+0

我该如何去实施我的项目?我发布了上面的代码... – iosfreak 2011-02-23 05:28:30

+0

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 60; } – GameLoading 2011-02-23 05:30:20

+0

这没有做一件事。我之前和之后添加它,它仍然无法正常工作。我的缩略图似乎卡在电池顶部和底部。 – iosfreak 2011-02-23 05:50:28

0

Shayam的答案是有点过时,不再编译。

此外,如果您修复它,您可能会创建一个无限循环。正如Oded Regev所说,这不是做到这一点的方法。

+0

这种方法仍然可以在ios7中使用最新的xcode,没有什么是过时的.... relx。 – GameLoading 2013-08-29 18:01:12

相关问题