如何为ios7 3.5英寸和4英寸屏幕设置UITableview的背景图像

时间:2014-04-19 05:03:13

标签: ios iphone objective-c

我正在开发适用于iOS6和i的ios应用程序iOS7 3.5英寸和4英寸屏幕。我有一些问题,当我为UITableview设置背景图像。在iOS 6 4英寸和3.5英寸屏幕中显示tableview背景图像。显示没有问题。但我的iOS7 3.5& 4英寸的tableview背景图片没有显示。这是我的问题。这是我的代码。

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{     
    weeklyTableview=[[UITableView alloc]initWithFrame:CGRectMake(0, 60, 320, 480)];       
    weeklyTableview.dataSource=self;    
    weeklyTableview.delegate=self;      
    weeklyTableview.scrollEnabled=YES;

    [self.view addSubview:weeklyTableview];

    weeklyTableview.separatorStyle=UITableViewCellSeparatorStyleSingleLine;
    weeklyTableview.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin;

    tableBackgroundImage=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"dash-bord-bg-small.PNG"]];
    tableBackgroundImage.frame=weeklyTableview.frame;

    [weeklyTableview setBackgroundView:tableBackgroundImage];              
}
else
{

    weeklyTableview=[[UITableView alloc]initWithFrame:CGRectMake(0, 60, 320, 480)];
    weeklyTableview.dataSource=self;        
    weeklyTableview.delegate=self;        
    weeklyTableview.scrollEnabled=YES;

    [self.view addSubview:weeklyTableview];

    weeklyTableview.separatorStyle=UITableViewCellSeparatorStyleSingleLine;
    weeklyTableview.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin;

    tableBackgroundImage=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"dash-bord-bg-small.PNG"]];
    tableBackgroundImage.frame=weeklyTableview.frame;

    [weeklyTableview setBackgroundView:tableBackgroundImage];

}

2 个答案:

答案 0 :(得分:1)

首先,检查项目包中是否存在文件dash-bord-bg-small.PNG

其次,请注意,在使用UIImageView对象时,如果您执行-initWithImage:并指定64px到64px的图像,则imageView框架集等于图像的尺寸 稍后,如果您将此imageView对象的帧更改为320px×320px,则图像将保持64px乘64px,而只有imageView对象变大。 (无论如何......现在这对你来说不是一个大问题

最后 ...请注意,默认情况下,iOS6中的UITableViewCell具有透明背景,但在iOS7中,背景为白色。

试试这个,看看是否有帮助:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    [cell.contentView setBackgroundColor:[UIColor clearColor]];
}

(可选) ...转储 if-else 块,因为它相同*

答案 1 :(得分:0)

试试这个

    [weeklyTableview setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"dash-bord-bg-small.PNG"]]];
相关问题