我正在尝试创建一个处理用户登录的视图控制器。由于我需要视图控制器是可滚动的,包含一个单独的视图(用于登录),并包含一个背景,我决定采用制作tableviewcontroller的路径,对其进行子类化,然后添加必要的视图。我将UITableViewController子类化,并将此代码添加到viewdidload()
中UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewControllerBlurred.png"]];
[tempImageView setFrame:self.tableView.frame];
self.tableView.backgroundView = tempImageView;
[tempImageView release];
这成功地将我的背景图像添加到控制器,此时,视图控制器看起来像:http://imgur.com/ST4H8uf。
接下来,我开始使用静态单元格,放入其中一个单元格的视图中,然后开始设计登录屏幕。此时,我的故事板看起来像:http://imgur.com/n6GKeGq&ST4H8uf但问题出现在我运行项目时。
当我运行项目时,我不断获得与第一张图片中相同的背景屏幕,而没有任何新的静态单元格或视图。所有和任何帮助都非常感谢这可能是导致这个问题的原因。谢谢。
CellForRowAtIndexPath代码:
*/
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:<#@"reuseIdentifier"#> forIndexPath:indexPath];
// Configure the cell...
return cell;
}
*/
答案 0 :(得分:0)
首先检查数据源并且必须设置tableview的委托。 你可能会因此而出现问题。
答案 1 :(得分:0)
永远不要使用UITableViewController!几乎在每种情况下,我都遇到过使用UIViewController并添加表视图要容易得多。你根本无法获得UITableViewController的backgroundView并让它正确滚动。我意识到你只能使用UITableViewController创建一个“静态”表视图,但它足够简单,可以模仿与常规表视图完全相同的行为,而且你不必处理无法添加视图的头痛问题表格(如背景图片)。
答案 2 :(得分:0)
如果你想要的只是一个只有静态单元格的UITableView,那么学会使用UIVcrollView和UIViewController。
@interface vc : UIViewController
@property (nonatomic, strong) UIScrollView *scrollView;
@end
@implementation vc
- (id)init // or whatever initializer you are using to make your view controller
{
self = [super init];
if (self) {
_scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,320,568)];
[_scrollView setContentSize:CGSizeMake(320,568)]; // equals one screen
[_scrollView setContentSize:CGSizeMake(320,568*2)]; // equals two screens, etc
// contentSize property determines how much you can scroll inside the UIScrollView view if that makes any sense to you.
[self.view addSubview:_scrollView]
// one way of adding a background
UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"imageName"]];
[self.view addSubview:backgroundImageView];
[_scrollView addSubview:[self newStaticCellAtPosition:CGRectMake(0,0,320,45)]];
[_scrollView addSubview:[self newStaticCellAtPosition:CGRectMake(0,45,320,45)]];
// add subviews, you can even use UITableViewCell if you want.
// I'd use simple UIView's and draw separators and whatnot myself if I were you.
}
return self;
}
- (UIView *)newStaticCellAtPosition:(CGRect)position
{
UIView *staticCell = [[UIView alloc] initWithFrame:position];
[staticCell setBackgroundColor:[UIColor redColor]];
return staticCell;
}
@end
对于其他属性,您应该查看UIScrollView文档。记住UITableView继承自UIScrollView,所以如果它很容易挑选你想要的东西。