it-swarm.com.ru

Могу ли я дать пространство между UITableViewCell

Я хотел бы дать пространство 10 пикселей в каждой ячейке таблицы.

Как я могу это сделать?

Прямо сейчас все клетки идут без места

 enter image description here

Вот моя функция клетки

- (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;
}
6
Tarun Seera

Самый простой способ - сделать высоту ваших ячеек немного больше (3pt сверху и 7pt снизу), чем у фонового изображения вашей клетки, и сделать цвет [UIColor clearColor]. Это создало бы иллюзию, что клетки имеют промежуток в 10 пт между ними.

7
Saheb Roy
- (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;
    }
4
Himanshu jamnani

Я думаю, что лучший способ - добавить разделительную ячейку для каждой нормальной ячейки. пусть каждый вид ячеек выполняет свою работу, и вы можете повторно использовать разделитель и обычную ячейку в другом месте, когда вам не нужно снова менять их пользовательский интерфейс. и вы можете настроить разделитель по своему усмотрению, и все вычисления просты, легко, как это:

- (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;
    }
}
2
MudOnTire

Создайте контейнерное представление внутри UITableviewCell-> ContentView. Вы сохраняете все свои подпредставления (метки, кнопки, представления) внутри этого контейнера. Теперь установите границы контейнера вне содержимого содержимого ячейки, установив соответствующие ограничения.

UITableviewCell-> ContentView-> YourCustomContainerView-> (все Подпредставления). Установите границы YourCustomContainerView от ContentView.

2
Suresh Kumar Durairaj

В пользовательском интерфейсе для UITableView установите значение атрибута высоты строки 210 . В пользовательском интерфейсе для UITableViewCell установите значение атрибута высоты строки 200.

Это поместит 10 пикселей пространства между каждой ячейкой в ​​TableView 

2
Yagnesh Dobariya

Если для простого решения вы можете создать разделы для всех ячеек. Каждый раздел, каждый ряд. Вы можете добавить высоту нижнего колонтитула для расстояния между разделами. 

1
Chetan

это так просто Вы можете установить автоматическую разметку или настроить высоту метки так же хорошо увеличивает высоту ячейки

1
fathima

просто сделайте numberOfSections = "Your array count" и сделайте так, чтобы каждый раздел содержал только одну строку. А затем определите 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;
}
1
Abhinandan Pratap

Увеличьте высоту ячейки .... И скройте разделитель и установите фоновое представление setBackgroundColor: [UIColor clearColor]]

1
fathima

Вы можете достичь этого, имея 1 ячейку на раздел и установив стиль табличного просмотра на Grouped

0
Matthieu Riegler

Добавьте UIView (parentView) в ContentView. Добавьте 10 пикселей между сверху и снизу в parentView. Добавьте содержимое вашей ячейки в parentView.

0
pallavi

Если вы хотите иметь возможность иметь разделы и не хотите создавать загадочное пространство внутри своих ячеек, создайте представление коллекции вместо представления таблицы. Представления коллекции могут быть установлены только по вертикали и только в один столбец = вы также можете установить минимальную высоту строки и интервал между интервалами. Документы Apple для разработчиков для UICollectionView

0
jessi