gpt4 book ai didi

iphone - UITableView 背景图片

转载 作者:行者123 更新时间:2023-12-03 19:16:31 24 4
gpt4 key购买 nike

我正在尝试设置一个带有滚动背景的表格 View 。背景是重复的云图像。

作为实现此目的的初步尝试,我使用了以下代码:

- (void)viewDidLoad {
aTableView.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"cloud.jpg"]];
aTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}

但是,这并不像我希望的那样有效。该图像被放置为每个单元格的背景(这很好),而且也作为 TableView 的背景,这样当用户滚动超过屏幕边界并使用弹跳时,会显示相同的云背景。这会产生不希望的重叠效果。

我想要的是每个单元格都有这个重复图像(以便它与表格一起滚动),但表格 View 的背景是纯黑色。这可能吗?

我知道我可以将图像添加到自定义单元格并将其发送到后面,但这似乎是一种占用内存太多的解决方法。

干杯

<小时/>

我已设法使用以下代码对此进行排序:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
[cell setBackgroundColor:[UIColor colorWithPatternImage: [UIImage imageNamed: @"cloud.jpg"]]];
}

这是将 UIColor 设置为 UIImage 的最佳方法还是该资源密集型?

最佳答案

我遇到了完全相同的问题,除了在实现过程中我们决定放弃设计并转而使用自定义表格 View 单元格。我们最初的设计是看起来像记事本,每行都有单元格。

子类化 UITableViewCell 似乎是一项艰巨的任务,但如果您将来需要自定义单元格并且看起来它会执行您所要求的操作,那么它是值得的。如果您有兴趣,我可以为您发布我的项目中的代码,但是请注意,您不会在 UITableView 本身上有背景,而仅在单元格上有背景。

编辑:发布与创建自定义 UITableViewCell 相关的代码:我的手机叫 HotOffersCell,这是 HotOffersCell.h

#import <UIKit/UIKit.h>
@interface HotOffersCell : UITableViewCell {
IBOutlet UILabel *mainLabel;
IBOutlet UILabel *subLabel;
IBOutlet UILabel *price;
IBOutlet UIImageView *imageView;
}
@property (nonatomic, retain) UILabel *mainLabel;
@property (nonatomic, retain) UILabel *subLabel;
@property (nonatomic, retain) UILabel *price;
@property (nonatomic, retain) UIImageView *imageView;

@end

HotOffersCell.m 非常简单,只是综合所有属性,没有其他内容然后在 TableView Controller 的 TableView 方法中:

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"HotOffersCell";

HotOffersCell *cell = (HotOffersCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"HotOffersCell" owner:nil options:nil];
for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[UITableViewCell class]]) {
cell = (HotOffersCell *) currentObject;
break;
}
}
}
NewsItem *newsItem = [newsList objectAtIndex:indexPath.row];

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"d MMM YY"];
NSString *date = [formatter stringFromDate:newsItem.departure_date];
if (indexPath.row % 2 == 0) {
cell.contentView.backgroundColor = [UIColor colorWithWhite:230.0/255 alpha:1]; // Match Colour
} else {
cell.contentView.backgroundColor = [UIColor colorWithWhite:242.0/255 alpha:1]; // Match Colour
}

cell.mainLabel.text = newsItem.destination;
cell.subLabel.text = [[NSString alloc] initWithFormat:@"%@ - %@ nights", date, newsItem.nights];
if ([self.navigationController.title isEqualToString:@"Top 20"]) {
cell.price.text = newsItem.price_inside;
} else {
cell.price.text = newsItem.price_balcony;
}
cell.imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@.png", newsItem.cruise_line]];

[formatter release];
return cell;
}

我还有一个 HotOffersCell.xib,该文件包含一个 UITableViewCell 并且没有 View ,我已经链接了所有相关标签,仅此而已,它提供了一种很好的图形方式来编辑标签上的位置,而无需更改代码,我什至让我兄弟修改了这个 =)

希望这有帮助

关于iphone - UITableView 背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2269710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com