проблема при создании UITextField программно iphone - PullRequest
2 голосов
/ 16 июня 2011

Я испытываю трудности, когда пытаюсь программно создать 11 текстовых полей.Проблема в том, что текстовые поля не отображаются.Я создаю их методом viewDidLoad.

Вот код, который я использую:

- (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];

}

Любые подсказки, почему они не появляются?

Заранее спасибо.

Ответы [ 5 ]

5 голосов
/ 16 июня 2011

Вы, кажется, никогда не добавляете scrollView в качестве подпредставления.


Ваши текстовые поля были скрыты, потому что вы никогда не устанавливали стиль границы. Попробуйте это:

- (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 голосов
/ 16 июня 2011

Попробуйте приведенный ниже код. Текстовые поля добавляются, и вы можете прокручивать текстовое представление. int numberOfTextfields = 11; int textfieldHeight = 40; int textfieldWidth = 200;</p> <p>UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0,textfieldWidth,numberOfTextfields*textfieldHeight)]; scrollView.contentSize = CGSizeMake(textfieldWidth, numberOfTextfields*textfieldWidth+10);</p> <p>NSMutableArray *textfields = [NSMutableArray arrayWithCapacity: (NSUInteger)numberOfTextfields];</p> <p>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]; }</p> <p>[self.view addSubview:scrollView]; [super viewDidLoad];

0 голосов
/ 16 июня 2011

Проверьте этот код ..... параметры кадра (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 голосов
/ 16 июня 2011

вам нужно добавить свой вид прокрутки в ваш контроллер представления. если выделено,
еще сделать это self.view = [[UIView alloc] initWithFrame:CGRectMake (0,0,320,460)] добавить эту строку в конце [self.view addSubview: scrollView]

0 голосов
/ 16 июня 2011

Вам необходимо добавить UIScrollView к вашему представлению и , чтобы настроить область содержимого, так как он не управляет ею автоматически (как вы могли ожидать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...