2011-06-16 66 views
2

当我尝试以编程方式创建11个文本字段时,我很挣扎。问题是文本字段不显示。我在viewDidLoad方法中创建它们。以编程方式创建UITextField时出现问题iphone

下面是我使用的代码:

- (void)viewDidLoad 
{ 
    // Determine some basic info 
    int numberOfTextfields = 11; 
    int textfieldHeight = 40; 
    int textfieldWidth = 200; 


    // Create the UIScrollView 
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, numberOfTextfields*textfieldHeight,textfieldWidth)]; 


    // Create all the textfields 
    NSMutableArray *textfields = [NSMutableArray arrayWithCapacity: 
            (NSUInteger)numberOfTextfields]; 
    for(int i = 0; i < numberOfTextfields; i++) { 
     UITextField *field = [[UITextField alloc] initWithFrame: 
           CGRectMake(0,i*textfieldHeight,textfieldHeight,textfieldWidth)]; 

     [scrollView addSubview:field]; 
     [textfields addObject:field]; 
    } 

    [super viewDidLoad]; 

} 

他们为什么不显示任何线索?

在此先感谢。

+0

你在哪里把scrollview本身? – 2011-06-16 12:07:23

回答

5

你似乎永远不会添加scrollView作为子视图。


您的textFields已被隐藏,因为您从未设置过边框样式。试试这个:

- (void)viewDidLoad 
{ 
    // Determine some basic info 
    int numberOfTextfields = 11; 
    int textfieldHeight = 40; 
    int textfieldWidth = 200; 


    // Create the UIScrollView 
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, textfieldWidth,numberOfTextfields*textfieldHeight)]; 
    scrollView.contentSize = CGSizeMake(numberOfTextfields*textfieldWidth, textfieldHeight); 

    // Create all the textfields 
    NSMutableArray *textfields = [NSMutableArray arrayWithCapacity: 
            (NSUInteger)numberOfTextfields]; 
    for(int i = 0; i < numberOfTextfields; i++) { 
     UITextField *field = [[UITextField alloc] initWithFrame:CGRectMake(0,i*textfieldHeight,textfieldWidth,textfieldHeight)]; 
     field.borderStyle = UITextBorderStyleRoundedRect; 
     [scrollView addSubview:field]; 
     [textfields addObject:field]; 
    } 

    [self.view addSubview:scrollView]; 

    [super viewDidLoad]; 
} 
+0

我试过[self.view addSubview:scrollView];但它不起作用,这就是为什么我从代码中删除它。 – madcoderz 2011-06-16 12:03:15

+0

边框风格...好的谢谢。一个问题:我怎样才能将文本字段与海誓山盟分开? – madcoderz 2011-06-16 12:30:10

+0

只需添加一些填充。当你创建'UITextField'时,执行以下操作:'UITextField * field = [[UITextField alloc] initWithFrame:CGRectMake(0,i * textfieldHeight + 10,textfieldWidth,textfieldHeight)];'。一定要适当增加滚动视图的'contentSize'。 – 2011-06-16 13:01:14

0

您需要添加UIScrollView到您的视图设置其内容区域,因为它不会自动地管理它(你可能已经预期)。

0

您需要将您的滚动视图添加到您的视图控制器。如果它被分配,
别的为此 self.view = [[UIView alloc] initWithFrame:CGRectMake (0,0,320,460)] 在端[self.view addSubview: scrollView]

0

检查这代码.....帧参数是(X,Y,宽度,高度)

int numberOfTextfields = 11; 
    int textfieldHeight = 40; 
    int textfieldWidth = 200; 


    // Create the UIScrollView 
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0,textfieldWidth,numberOfTextfields*textfieldHeight)]; 


    // Create all the textfields 
    NSMutableArray *textfields = [NSMutableArray arrayWithCapacity: 
            (NSUInteger)numberOfTextfields]; 
    for(int i = 0; i < numberOfTextfields; i++) { 
     UITextField *field = [[UITextField alloc] initWithFrame: 
           CGRectMake(0,i*textfieldHeight,textfieldWidth,textfieldHeight)]; 
     field.borderStyle=UITextBorderStyleRoundedRect; 
     [scrollView addSubview:field]; 
     [textfields addObject:field]; 
    } 
    [self.view addSubview:scrollView]; 
    [super viewDidLoad]; 
0
添加此行

尝试下面的代码。文本框被添加,您可以滚动文本框。

 
int numberOfTextfields = 11; 
int textfieldHeight = 40; 
int textfieldWidth = 200;

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0,textfieldWidth,numberOfTextfields*textfieldHeight)]; scrollView.contentSize = CGSizeMake(textfieldWidth, numberOfTextfields*textfieldWidth+10);

NSMutableArray *textfields = [NSMutableArray arrayWithCapacity: (NSUInteger)numberOfTextfields];

for(int i = 1; i < numberOfTextfields; i++) { UITextField *field = [[UITextField alloc] initWithFrame: CGRectMake(0,i*textfieldHeight,textfieldWidth,textfieldHeight)]; field.borderStyle=UITextBorderStyleRoundedRect; [scrollView addSubview:field]; [textfields addObject:field]; }

[self.view addSubview:scrollView]; [super viewDidLoad];

相关问题