UITableviewCell 中的随机背景图像

Posted

技术标签:

【中文标题】UITableviewCell 中的随机背景图像【英文标题】:random background image in UITableviewCell 【发布时间】:2013-12-15 09:23:40 【问题描述】:

我想知道如何构建具有随机背景图像的动态 UItable?例如,我有 6 张图片分别称为 back1.png、back2.png、back3.png......back6.png。

“cellForRowAtIndexPath”中要添加什么代码

我只能依次为每个单元格分配一个特定的图像,如下所示,

if(indexPath.row == 0)
    newView.backgroundColor = [UIColor [UIColor colorWithPatternImage:[UIImage imageNamed:@"lightwood1.jpg"]];

if(indexPath.row == 1)
    newView.backgroundColor = [UIColor [UIColor colorWithPatternImage:[UIImage imageNamed:@"lightwood2.jpg"]];

if(indexPath.row == 2)
    newView.backgroundColor = [UIColor [UIColor colorWithPatternImage:[UIImage imageNamed:@"lightwood3.jpg"]];

但是我如何才能在 UITableView 中随机更改为无限行?

【问题讨论】:

[NSString stringWithFormat:@"lightwood%d",arc4random()%6] 【参考方案1】:

试试这个...

int lowerBound = 1;
int upperBound = 7;
int randomValue = lowerBound + arc4random() % (upperBound - lowerBound);

newView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:[NSString stringWithFormat:@"lightwood%d.jpg", randomValue]]];

【讨论】:

错误信息显示:方法调用的参数太多,预期1,有2。这是什么意思以及如何解决?谢谢【参考方案2】:

试试这个,可能对你有帮助

newView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:[NSString stringWithFormat:@"lightwood%d.jpg", indexPath.row]]];

indexPath.row 一一增加,您的图像名称也一一增加.... 谢谢

【讨论】:

在这种情况下它不起作用,因为只有 6 张图片,当 indexPath.row 返回大于 6 时,您的代码将加载图片。 我有其他方法你需要使用 If else 条件来管理它 如何使用 if else 条件管理随机函数?能详细点吗?? 看到我给了另一个答案希望这个工作正常...谢谢

以上是关于UITableviewCell 中的随机背景图像的主要内容,如果未能解决你的问题,请参考以下文章

如何将附件视图背景设置为与 UItableViewCell 中的内容视图相同的背景?

div中的随机图像背景

(快速问题)UITableViewCell 背景图像 - 保持视网膜图形的分辨率

UITableViewCell重用后加载不正确的图像

uitableviewcell 自定义背景问题

表格向上滚动并返回该单元格时的 UITableViewCell 背景图像问题