如何制作UITableView Scroll?

时间:2011-08-23 20:47:23

标签: iphone objective-c uitableview

在下面的代码中,当我点击一个按钮时,我会推送一个新的UITableView。 TableView有25行。我可以看到第9行和第10行被切断了。我无法向下滚动以查看其余行。如何使TableView可滚动?谢谢。

- (IBAction)showListPicker:(id)sender {
    ListPicker *lp = [[ListPicker alloc] initWithStyle:UITableViewStyleGrouped];
    [self setTitle:@"Home"];
    [[self navigationController] pushViewController:lp animated:YES];
    [lp release];
}

以下是ListPicker的声明

#import <Foundation/Foundation.h>

@interface ListPicker : UITableViewController
{}
@end

以下是ListPIcker

的实现
#import "ListPicker.h"
#import "GameStore.h"
#import "List.h"
#import "HomeViewController.h"

@implementation ListPicker

- (id)init
{
    return [super initWithStyle:UITableViewStyleGrouped];
}

-(id)initWithStyle:(UITableViewStyle)style{
    return [self init];
}

-(void)dealloc{
    [super dealloc];
}

-(void)viewDidLoad{
    [self setTitle:@"Select List"];
    [[self navigationController] setNavigationBarHidden:NO];
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return [[[GameStore defaultStore] allLists] count];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
    if(cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                       reuseIdentifier:@"UITableViewCell"] autorelease];
    }

    NSArray *allList = [[GameStore defaultStore] allLists];
    List *mylist = [allList objectAtIndex:[indexPath row]];
    NSString *listTitle = [mylist label];

    [[cell textLabel] setText:listTitle];
    [cell setAccessoryType:UITableViewCellAccessoryNone];
    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    List *list = [[[GameStore defaultStore] allLists] objectAtIndex:[indexPath row]];
    [[GameStore defaultStore] setSelectedList:list];

    HomeViewController *hv = [[HomeViewController alloc] init];
    [[self navigationController] popViewControllerAnimated:YES];
}


@end

3 个答案:

答案 0 :(得分:2)

尝试添加:

yourTable.scrollEnabled = YES;

此外,当您以编程方式创建表时,请确保它“足够长”,即

CGRect cgRct = CGRectMake(0, 0, 320, 600);          
yourTable = [[UITableView alloc] initWithFrame:cgRct style:UITableViewStyleGrouped];    

答案 1 :(得分:1)

代替 YES ,写下 true ,因为它只接受bool值。

yourTable.scrollEnabled = true;

答案 2 :(得分:1)

更改UITableView中滚动的布尔状态的两种常用方法:

1)可以通过Storyboard在UITableView的属性检查器中启用它。

enter image description here

2)或通过ViewController以编程方式在viewDidLoad()中。

import UIKit  

    class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

        @IBOutlet var yourTable: UITableView!

        override func viewDidLoad() {
            super.viewDidLoad()

            // assign delegate and datasource 
            yourTable.delegate = self
            yourTable.dataSource = self

            //enable UITableView scrolling in Swift 3 and Swift 4.
            yourTable.isScrollEnabled = true
    } 
}