我想让我的桌子内容在我的背景图像上滚动。
或者我不介意细胞是否可以拍摄背景图像的块,以便背景保留在细胞后面,但随着细胞滚动。
这可能吗?如果是这样的话?
我尝试添加图片视图并将我的单元格和表格背景颜色设置为清除。
这是我的代码。
答案 0 :(得分:1)
如前所述,问题在于您的代码。从您提供的代码示例(http://kidsmaskfactory.com/code/testback.zip)开始,您需要进行2次修改:
1)将您的RootViewController的父类从UITableViewController更改为UIViewController。 2)将文件所有者的视图属性设置为您的视图而不是您的表格视图。
此重新编译后&运行你的代码&它应该给你以下输出。
答案 1 :(得分:0)
尝试将UITableView的backgroundView更改为您想要的任何内容 - 可能是包含您图片的UIImageView。
这将为您提供背景图片。现在的问题是如何使用表格滚动背景图像。我不确定但有两个可能性:
由于UITableView是UIScrollView的子类,因此backroundView将与表的其余部分一起滚动,您无需执行任何操作。
backgroundView是一个单独的视图,不是从UIScrollView派生的。然后,您需要实现UIScrollViewDelegate来拦截滚动位置的更改,并手动将这些更改应用到您的backgroundView。
答案 2 :(得分:0)
Hi Jules按照以下步骤将背景图像设置为tableview。这个有效!!我试过了。
<强> STEP-1 强>
在你的xib中放置你的tableview并将它的委托和数据源字段分配给File的所有者。
<强> STEP-2 强>
现在将imageView拖到您的tableview上,并将其调整为View的大小。使用检查器选择要在后台显示的图像。
<强> STEP-3 强>
选择imageView并转到菜单“布局 - &gt;发送到后面”
<强> STEP-4 强>
选择您的tableview并从Inspector中将背景颜色设置为“clear color”。
希望这能解决你的问题。
答案 3 :(得分:0)
我刚下载了您的测试项目,这就是我的想法。
你以奇怪的方式制作了你的rootviewcontroller。它是UITableViewController的一个特化,但你已经添加了自己的UITableView作为子视图,以及你的UIImageView。有一种更简单的方法。
您的RootViewController应该只是常规的UITableViewController派生类,而Interface Builder中的结构不会发生任何变化。如果要在UInterface Builder中定义UIImageView,请将UIImageView拖入XIB,但不要将其作为UITableView的子项。使它成为顶级对象。将它连接到您在代码中添加到RootViewController的新IBOutlet:
@interface RootViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> {
IBOutlet UIImageView* _backgroundImageView;
}
确保在Interface Builder中的UIImageView中设置图像。
在RootViewController.m文件中,添加以下内容:
- (void)viewDidLoad {
[super viewDidLoad];
self.tableView.backgroundView = _backgroundImageView;
}
我修改了您的测试项目并在此处发布:http://www.codeveloper.com/TestCustomCellWithViewBackground-TomSwift.zip
答案 4 :(得分:0)
step1:将RootViewController.h更改为:
#import <UIKit/UIKit.h>
@interface RootViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
IBOutlet UITableView *reportTableView;
}
@end
<强>步骤2:强>
在RootViewController.m中:
添加此方法:
- (void)viewDidLoad
{
[super viewDidLoad];
reportTableView.backgroundColor = [UIColor clearColor];
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
第3步:
在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
变化:
if (cell == nil)
{
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"Cell"
owner:nil options:nil];
for (id currentObject in topLevelObjects)
{
if ([currentObject isKindOfClass:[UITableViewCell class]])
{
cell = ((ReportCell *) currentObject);
break;
}
}
cell.backgroundColor = [UIColor clearColor];
}
<强>步骤4:强>
转到Nib文件
- &GT;将reportTableView插座设置为tableview。
- &GT;将视图出口设置为视图。
这将解决您的问题。
答案 5 :(得分:-1)
将图像视图放在表格视图后面。并将UITableView的背景颜色更改为clear([UIColor clearColor])。