我已经为此工作了大约2天,所以我想我和你分享我的经验.
问题是:是否可以使分组的UITableView中的单元格宽度更小?
答案是不.
但是有两种方法可以解决这个问题.
解决方案#1:更薄的表 可以更改tableView的框架,以便表格更小.这将导致UITableView以减小的宽度渲染内部单元格.
对此的解决方案可能如下所示:
-(void)viewWillAppear:(BOOL)animated
{
CGFloat tableBorderLeft = 20;
CGFloat tableBorderRight = 20;
CGRect tableRect = self.view.frame;
tableRect.origin.x += tableBorderLeft; // make the table begin a few pixels right from its origin
tableRect.size.width -= tableBorderLeft + tableBorderRight; // reduce the width of the table
tableView.frame = tableRect;
}
Run Code Online (Sandbox Code Playgroud)
解决方案#2:让图像呈现细胞
此解决方案在此处描述:http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html
我希望这些信息对您有所帮助.我花了大约2天时间尝试了很多可能性.这就是剩下的.
如果我创建一个UITableViewController,例如通过文件→新建项目...→iOS→在Xcode中的主要细节应用程序,UITableView则创建一个原型单元格.
生成的视图层次结构为:

在单元格的内容UIView左边缘和"标题"文本UILabel元素之间自动创建左"边距" ,如下面橙色所示.

这会在设备的屏幕边缘和UILabel运行时的文本之间产生相应的余量:

那么,这个间隙的宽度设置在哪里,以及如何调整?
UILabel的Size Inspector中的控件显示为灰色:

我首选的选项是能够在Interface Builder中设置此间隙的宽度,但我还想了解这个间隙的设置位置,以及如何以编程方式更改它.
我已经将UITableViewCell子类化为创建一个带有按钮和2个标签的自定义单元格.使用Dave Mark的Beginning iPhone Development中概述的模式从xib加载单元定义.这是基本代码:
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MarketItemCustomCell" owner:self options:nil];
for (id oneObject in nib)
{
if ([oneObject isKindOfClass:[MarketItemCustomCell class]])
{
cell = (MarketItemCustomCell *)oneObject;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
标签和按钮按预期显示,但不遵守缩进级别.我已经实现了如下所示的indentationLevelForRowAtIndexPath,但是单元格仍然一直向左对齐.
- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath
{
<snip/>
return 5;
}
Run Code Online (Sandbox Code Playgroud)
请注意,当我不使用自定义单元格时,缩进级别正常工作.
任何提示?
请参考下图:

我想自定义UITableView.
我使用tableView.backgroundView实现了它的图像背景.
现在我想将左缩进/边距添加到每一行作为示例图片.然后我想减小它们的宽度并使它们居中.
我可以实现这些吗?任何帮助表示赞赏:)