我想在每个表视图单元格中提供10个像素的空间。
我怎么能这样做?
现在所有的细胞都没有空间
这是我的手机功能
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"MyOrderCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
NSLog(@"%d",indexPath.row);
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
cell.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
UILabel *orderid = (UILabel*)[cell.contentView viewWithTag:101];
orderid.textColor = kMaroonColor;
orderid.font = [UIFont fontWithName:kFontName size:kProductFont];
orderid.text = [NSString stringWithFormat:@"ORDER ID : %@",contentDict[@"order_id"]];
UILabel *date = (UILabel*)[cell.contentView viewWithTag:102];
date.textColor = kMaroonColor;
date.font = [UIFont fontWithName:kFontName size:kProductFont];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date1 = [dateFormat dateFromString:contentDict[@"order_date"]];
// Convert date object to desired output format
[dateFormat setDateFormat:kDateFormat1];
NSString *dateStr = [dateFormat stringFromDate:date1];
date.text = dateStr;
NSArray *products = contentDict[@"products"];
UILabel *noOfProducts = (UILabel*)[cell.contentView viewWithTag:103];
noOfProducts.textColor = kMaroonColor;
noOfProducts.font = [UIFont fontWithName:kFontName size:kProductFont];
noOfProducts.text= [NSString stringWithFormat:@"NO OF PRODUCTS : %d",products.count];
NSArray *totalArray = contentDict[@"totals"];
NSDictionary *totalDict = [totalArray objectAtIndex:0];
UILabel *price = (UILabel*)[cell.contentView viewWithTag:104];
price.textColor = [UIColor blackColor];
price.font = [UIFont fontWithName:kFontName size:kProductFont];
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"\u20B9 %@",totalDict[@"total"]]];
[attributeString addAttribute:NSForegroundColorAttributeName
value:kGreyColor
range:NSMakeRange(0, 1)];
price.attributedText = attributeString;
UIView* shadowView = [[UIView alloc]init];
[cell setBackgroundView:shadowView];
// border radius
[shadowView.layer setCornerRadius:10.0f];
// border
[shadowView.layer setBorderColor:[UIColor lightGrayColor].CGColor];
[shadowView.layer setBorderWidth:1.5f];
// drop shadow
[shadowView.layer setShadowColor:[UIColor blackColor].CGColor];
[shadowView.layer setShadowOpacity:0.8];
[shadowView.layer setShadowRadius:3.0];
//[cell.layer setShadowOffset:CGSizeMake(5.0, 5.0)];
[tableView setSeparatorInset:UIEdgeInsetsMake(10, 10, 10, 10)];
[cell setLayoutMargins:UIEdgeInsetsMake(10, 10, 10, 10)];
// [tableView setIndentationWidth:10];
// [tableView setIndentationLevel:2];
//tableView.separatorStyle=UITableViewCellSeparatorStyleSingleLine;
return cell;
}
答案 0 :(得分:7)
最简单的方法是让你的细胞高度比你的细胞背景图像高一些(从顶部开始3pt,从底部开始7pt),并使颜色为[UIColor clearColor]
。这会产生一种错觉,即细胞间的间隙为10 pt。
答案 1 :(得分:4)
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// number of cells or array count
return 10;
}
- (NSInteger)tableView:(UITableView *)tableViewnumberOfRowsInSection:(NSInteger)section
{
return 1;
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
// space between cells
return 10;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *view = [UIView new];
[view setBackgroundColor:[UIColor clearColor]];
return view;
}
答案 2 :(得分:2)
在UITableviewCell-> ContentView中创建容器视图。您将所有子视图(标签,按钮,视图)保留在该容器视图中。现在通过设置适当的约束来设置容器的边界远离Cell的contentview。
UITableviewCell-> ContentView-> YourCustomContainerView-> (所有 子视图)。将YourCustomContainerView的边界设置为远离 内容查看。
答案 3 :(得分:2)
在UITableView的用户界面中设置行高度属性值210。 在UITableViewCell的用户界面中设置行高度属性值200。
它将在TableView
中的每个单元格之间放置10个px空间答案 4 :(得分:2)
我想最好的方法是为每个普通单元格添加一个分隔符单元格。让每种单元格完成自己的工作,并且可以重复使用分隔符和普通单元格,而不需要再次更改其UI。并且您可以根据需要自定义分隔符,所有计算都很容易,如下所示:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return dataArray.count * 2;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.row % 2 == 0) {
CellForData *cell = [tableView dequeueReusableCellWithIdentifier:@"dataCellID" forIndexPath:indexPath];
return cell;
}else{
CellForSeparation *cell = [tableView dequeueReusableCellWithIdentifier:@"separatorCellID" forIndexPath:indexPath];
return cell;
}
}
答案 5 :(得分:1)
如果是简单的解决方案,您可以为所有单元格创建部分。每一节每一行。您可以为节之间的间距添加页脚高度。
答案 6 :(得分:1)
答案 7 :(得分:1)
只需输入numberOfSections ="你的数组计数"并使每个部分只包含一行。然后定义headerView及其高度。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return yourArry.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return cellSpacingHeight;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *v = [UIView new];
[v setBackgroundColor:[UIColor clearColor]];
return v;
}
答案 8 :(得分:1)
增加单元格高度....并隐藏分隔符并设置背景视图setBackgroundColor:[UIColor clearColor]]
答案 9 :(得分:0)
你可以通过每节一个细胞来实现这一目标。将tableview样式设置为Grouped
。
答案 10 :(得分:0)
如果您希望能够拥有部分并且不想在单元格中创建神秘空间,请创建集合视图而不是表格视图。集合视图可以设置为仅垂直,仅一列=您还可以设置最小线高和插入间距。 Apple Developer Docs for UICollectionView
答案 11 :(得分:0)
将UIView(parentView)添加到ContentView。从顶部和底部添加10个pixcel间距到parentView。在parentView中添加单元格内容。
答案 12 :(得分:0)
// I found this on internet hope this will help some future seeker
// This method should implement in custom class
// This for give space between row
override var frame: CGRect {
get {
return super.frame
}
set (newFrame) {
var frame = newFrame
frame.origin.y += 4
frame.size.height -= 2 * 5
super.frame = frame
}
}