UITableView 不显示背景图片
Posted
技术标签:
【中文标题】UITableView 不显示背景图片【英文标题】:UITableView not showing background image 【发布时间】:2011-06-22 08:05:18 【问题描述】:我有一个带有 2 个单元格(自定义 tableviewcells)和一个用于登录的按钮的 uitableview。我以编程方式制作它们。现在我想在 2 个自定义单元格和按钮后面放置一个背景图像。我进入 IB 并将图像视图放在 tableview 的顶部,然后在上面放一张我想要作为背景的图片。然后我进入viewDidLoad
并输入这段代码tblSimpleTable.backgroundColor = [UIColor clearColor];
来清除tableviews的背景颜色。
现在看起来像这样:
但是背景没有出现。有谁知道如何解决这一问题?
谢谢。
viewDidLoad
- (void)viewDidLoad
[super viewDidLoad];
self.dataSourceArray = [NSArray arrayWithObjects:
[NSDictionary dictionaryWithObjectsAndKeys:
@"UITextField", kSectionTitleKey,
@"TextFieldController.m: textFieldNormal", kSourceKey,
self.textFieldNormal, kViewKey,
nil],
nil];
UIButton *loginButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
loginButton.frame = CGRectMake(60,140,200,38); // position in the cell and set the size of the button
[loginButton setTitle:@"Login" forState:UIControlStateNormal];
// add targets and actions
[loginButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
// add to a view
[self.view addSubview:loginButton];
tblSimpleTable.backgroundColor = [UIColor clearColor];
//tblSimpleTable.backgroundView = nil;
//UIImageView *imageView = [[UIImageView alloc] initWithImage:@"Background-Red.png"];
//imageView.frame = tblSimpleTable.frame;
//tblSimpleTable.backgroundView = imageView;
self.title = NSLocalizedString(@"TextFieldTitle", @"");
// we aren't editing any fields yet, it will be in edit when the user touches an edit field
self.editing = NO;
【问题讨论】:
你把图片放在上面了吗?你能详细说明你是如何做到这一点的或显示一些代码吗? 首先放置 ImageView 并在该 ImageView 上,将您的标签和所有内容放入 Nib 文件中 @dragon112 + Marvin:我在 viewDidLoad 中的代码如上所示。 【参考方案1】:为什么不使用UITableView
对象的backgroundView
属性?
UIImageView * imageView = [[UIImageView alloc] initWithImage:yourBackgroundImage];
imageView.frame = tblSimpleTable.frame;
tblSimpleTable.backgroundView = imageView;
当然,backgroundView
会在你不设置框架的情况下调整大小,所以跳过第二行也不成问题。
【讨论】:
我也要把它放在viewDidLoad
中吗?【参考方案2】:
你所拥有的应该可以解决。还是试试这个: 添加
tblSimpleTable.backgroundView = nil;
在 viewDidLoad
【讨论】:
@Nitish:不幸的是,这不起作用。我看到一些帖子说他们需要将图像放入 IB - 发送到后面。但是,它不允许我这样做,因为 IB 中的 send to back 选项被禁用。你知道为什么吗?谢谢。 我认为没有必要这样做。要将图像放在表格单元格后面还是完整视图后面? @Nitish:我想将图像放在表格单元格和按钮后面。所以图像是背景,表格单元和按钮在图像上方。你知不知道怎么?谢谢。 如果要将图像放在单元格后面,那么您还应该清除单元格及其子视图的背景颜色。与您对 tableView 所做的相同。试试看。 @Nitish:是的,我试过了,但它仍然不显示背景图像。 :/。有没有另一种方式来展示它?谢谢。以上是关于UITableView 不显示背景图片的主要内容,如果未能解决你的问题,请参考以下文章
使用图像作为 UITableView 背景;背景仍然显示黑色