如何更改UITableViewCell的宽度并在UITableView中使用

时间:2014-04-08 09:07:59

标签: ios objective-c uitableview width

我有一个类ViewController我要在其中创建TableView,代码不是nib文件,我希望自定义单元格UITableViewCell具有nib文件。 我使用宽度为320px的代码创建TableView,并且我希望使用UITableViewCell创建我的单元格宽度为300px的自定义单元格并放入我的TableView中。

注意:我希望这些细胞放在我的桌子中央,这些细胞距离两侧有10px的距离!!!

这是我的代码:

ViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    table = [self makeTableView];
    [self.view addSubview:table];
    [self.view setBackgroundColor: RGB(193,60,46)]; //will give a UIColor objct
    name = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
    // Do any additional setup after loading the view from its nib.
}
- (BOOL)prefersStatusBarHidden
{
    return YES;
}
-(UITableView *)makeTableView
{
    CGFloat x = 0;
    CGFloat y = 0;
    CGFloat width = self.view.frame.size.width;
    CGFloat height = self.view.frame.size.height;
    CGRect tableFrame = CGRectMake(x, y, width, height);

    UITableView *tableView = [[UITableView alloc]initWithFrame:tableFrame style:UITableViewStyleGrouped];

    tableView.rowHeight = 60;
    tableView.sectionFooterHeight = 22;
    tableView.sectionHeaderHeight = 22;
    tableView.scrollEnabled = YES;
    tableView.showsVerticalScrollIndicator = YES;
    tableView.userInteractionEnabled = YES;
    tableView.bounces = YES;
    tableView.backgroundColor = [UIColor clearColor];
    tableView.delegate = self;
    tableView.dataSource = self;

    return tableView;
}

#pragma mark Table View Data Source Methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 5;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    CustomCell *cell = (CustomCell *)[self.table dequeueReusableCellWithIdentifier:@"myCell"];
    if (cell == nil)
    {
        NSArray *topLevelObject = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:nil options:nil];

        for (id currentObject in topLevelObject) {
            if ([currentObject isKindOfClass:[CustomCell class]]) {
                cell = (CustomCell *)currentObject;
                break;
            }
        }
    }
    // Configure the cell...
    cell.titleLable.text = [name objectAtIndex:indexPath.row];

    return cell;
}

这是我的代码:TableCode

2 个答案:

答案 0 :(得分:0)

afaik,单元格总是表格的宽度,你不能改变它,你可以通过使单元格的内容视图透明来伪造它,然后放置另一个视图,其中所有内容的宽度小于表

答案 1 :(得分:0)

我有一个宽度为685的UITableView。

我创建了宽度为685的Custom UITableViewCell。

我添加了两个标签。

我以这种方式对齐标签,左右的间距是相同的。

enter image description here