在UIPopoverController xcode5中更改静态UITableViewCell背景颜色

时间:2014-05-26 15:38:43

标签: objective-c uitableview xcode5 uipopovercontroller ios7.1

我正在Xcode 5中为iOS7.1开发应用程序

我想在最后一行更改tableview单元格的背景颜色,看起来像这样

enter image description here

但是当我在UIPopoverController中调用这个UITableViewController时,我得到了这个:

enter image description here

不知何故,我的tableview单元格失去了它的原始背景颜色

这是我的代码:

//iPad Popover Section
        if (!resultBTPopover || !resultBTPopover.popoverVisible)
        {
            ResultadosBalanceTransferVC *controller   = [self.storyboard instantiateViewControllerWithIdentifier:@"ResultadosBalanceTransferVC"];
            //controller.delegate             = self;
            controller.title                = @"Resultados";
            controller.amountValue          = self.amountTextfield.text;
            controller.promoRateValue       = self.promoRateTextfield.text;
            controller.normalRateValue      = self.normalRateTextfield.text;
            controller.otherBankRateValue   = self.otherBankRateTextfield.text;
            controller.termValue            = self.termTextfield.text;



            navController                  = [[UINavigationController alloc]initWithRootViewController:controller];
            navController.toolbarHidden     = FALSE;

            NSDictionary *textAtributesDictionaryTitle = [NSDictionary dictionaryWithObjectsAndKeys:
                                                          UIColorFromRGB(toolbarTintColor),  NSForegroundColorAttributeName,
                                                          [UIFont fontWithName:@"HelveticaNeue-BoldCond" size:19.0f], NSFontAttributeName,
                                                          nil];

            [navController.navigationBar setTitleTextAttributes:textAtributesDictionaryTitle];

            resultBTPopover   = [[UIPopoverController alloc] initWithContentViewController:navController];


            [resultBTPopover presentPopoverFromRect:CGRectMake(self.view.center.x - (self.view.center.x * .2734), self.view.center.y - (self.view.center.y * .6510), 300, 400)
                                             inView:self.view permittedArrowDirections:0
                                           animated:YES];
        }
        else{
            [resultBTPopover dismissPopoverAnimated:YES];
            resultBTPopover = nil;
        }
    }

如何获取我的原始tableview单元格颜色???

提前感谢支持


编辑:我会把Plokstorm提出的方法

ResultsCell.h:

#import <UIKit/UIKit.h>

@interface ResultsCell : UITableViewCell

@property (nonatomic, weak) IBOutlet UILabel *label1;
@property (nonatomic, weak) IBOutlet UILabel *label2;
@property (nonatomic, weak) IBOutlet UILabel *label3;
@property (nonatomic, weak) IBOutlet UILabel *label4;
@property (nonatomic, weak) IBOutlet UILabel *label5;

@end
在STORYBOARD上我做了这个:

enter image description here

所有这些都改为ResultsCell自定义类

enter image description here

将所有属性与UITableViewCell的可视标签链接

在CODE上我做了这个测试:

ResultadosBalanceTransferVC.m

#import "ResultsCell.h"
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    ResultsCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (cell == nil) {
        cell = [[ResultsCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:@"Cell"];
    }

    if (indexPath.row == 2){
        cell.backgroundColor = [UIColor redColor];
        cell.label1.text = @"Pago Total";
    }

    return cell;

}

和...仍然得到相同的结果:

enter image description here

3 个答案:

答案 0 :(得分:0)

告诉我们你的

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

您可以使用cell.backgroundColor更改单元格背景。

答案 1 :(得分:0)

试试:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:@"Cell"];
    }
    if (indexPath.row == 2)
          cell.backgroundColor = [UIColor redColor];


    return cell;
}

答案 2 :(得分:0)

您需要在故事板中更改单元格类。

如果您不创建单元类,则应创建一个扩展UITableViewCell的对象。然后你可以添加它的属性。

@interface ResultsCell : UITableViewCell
@property (nonatomic, weak) IBOutlet UILabel *lYourFirstLabel;

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    ResultsCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    if (cell == nil) {
        cell = [[ResultsCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:@"Cell"];
    }
    if (indexPath.row == 2)
          cell.backgroundColor = [UIColor redColor];
          [cell.lYourFirstLabel setText:@"hello"];

    return cell;
}