xcode 以编程方式在 UITableView 单元格中添加边距?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/5087288/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Programatically add margin in UITableView cell?
提问by iosfreak
I am trying to add margin to a cell. I have tried many times with different methods but have failed. Please help!
我正在尝试为单元格添加边距。我用不同的方法尝试了很多次,但都失败了。请帮忙!
- (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;
}
Thanks again.
再次感谢。
采纳答案by GameLoading
- (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
}
}
// returns nil if cell is not visible or index path is out of range
// 如果单元格不可见或索引路径超出范围,则返回 nil
check this method. find what what u got cell.imageview or cell.image find the height of that image here and set here. this is the method that return the size of the cell.
检查这个方法。找到你得到的东西 cell.imageview 或 cell.image 在此处找到该图像的高度并在此处设置。这是返回单元格大小的方法。
Regards,
问候,
Shyam Parmar
夏姆·帕玛
回答by Alex Zavatone
Shayam's answer is a little outdated and no longer compiles.
Shayam 的回答有点过时,不再编译。
Also, if you fix it you'll be likely to create an endless loop. As Oded Regev mentioned, this is not the way to do it.
此外,如果您修复它,您可能会创建一个无限循环。正如 Oded Regev 所提到的,这不是这样做的方法。
回答by bret
Please see the following question for a detailed overview on how to do.
有关如何操作的详细概述,请参阅以下问题。