0

次のように、ビューにスクロールビューを追加しました。

   _scrollView = [[UIScrollView alloc] initWithFrame:self.view.frame];
            _scrollView.contentSize = CGSizeMake(320, 600);
            [_scrollView setUserInteractionEnabled:TRUE];
            [_scrollView setScrollEnabled:TRUE];
[container addSubview:self.scrollView];

ただし、スクローラーが画面に表示され、スクロールできますが、その中のテキストフィールドが機能しません。これを修正するにはどうすればよいですか?

- (UIView *)Form
{
    if (!_Form) {
        CGRect frame = CGRectMake(0.0, kSignUpViewVisibleHeight, kDeviceWidth, 310.0);
        UIView *container = [[UIView alloc] initWithFrame:frame];

        _scrollView = [[UIScrollView alloc] initWithFrame:self.view.frame];
        _scrollView.contentSize = CGSizeMake(320, 600);
        [_scrollView setUserInteractionEnabled:TRUE];
        [_scrollView setScrollEnabled:TRUE];



        CGFloat y = 15.0;
        frame = CGRectMake(15.0, y, kDeviceWidth - 2*15.0, kDefaultTextFieldHeight);
        UITextField *field = [[UITextField alloc] initWithFrame:frame];
        [self.appDel.styleManager decorateTextField:field];
        field.placeholder = @"Email*";
        field.keyboardType = UIKeyboardTypeEmailAddress;
        [container addSubview:field];
        self.FormEmail = field;
        self.FormEmail.delegate = self;
        self.FormEmail.autocapitalizationType = UITextAutocapitalizationTypeNone;
        self.FormEmail.clearButtonMode = UITextFieldViewModeAlways;

        CGFloat spacing = 8.0;
        y = frame.origin.y + kDefaultTextFieldHeight + spacing;
        frame = CGRectMake(15.0, y, kDeviceWidth - 2*15.0, kDefaultTextFieldHeight);
        field = [[UITextField alloc] initWithFrame:frame];
        [self.appDel.styleManager decorateTextField:field];
        field.placeholder = @"Password*";
        field.secureTextEntry = YES;
        [container addSubview:field];
        self.FormPassword = field;
        self.FormPassword.delegate = self;
        self.FormPassword.autocapitalizationType = UITextAutocapitalizationTypeNone;
        self.FormPassword.clearButtonMode = UITextFieldViewModeAlways;

        y = frame.origin.y + kDefaultTextFieldHeight + spacing;
        frame = CGRectMake(15.0, y, kDeviceWidth - 2*15.0, kDefaultTextFieldHeight);
        field = [[UITextField alloc] initWithFrame:frame];
        [self.appDel.styleManager decorateTextField:field];
        field.placeholder = @"Confirm Password*";
        field.secureTextEntry = YES;
        [container addSubview:field];
        self.FormConfirmPassword = field;
        self.FormConfirmPassword.delegate = self;
        self.FormConfirmPassword.autocapitalizationType = UITextAutocapitalizationTypeNone;
        self.FormConfirmPassword.clearButtonMode = UITextFieldViewModeAlways;

        y = frame.origin.y + kDefaultTextFieldHeight + 16.0;
        CGFloat w = (kDeviceWidth - 2 * 15.0) / 2;
        frame = CGRectMake(15.0, y, w - 2.0, kDefaultTextFieldHeight);
        field = [[UITextField alloc] initWithFrame:frame];
        [self.appDel.styleManager decorateTextField:field];
        field.placeholder = @"First Name*";
        [container addSubview:field];
        self.FirstName = field;
        self.FirstName.delegate = self;
        self.FirstName.clearButtonMode =UITextFieldViewModeAlways;

        frame = CGRectMake(15.0 + w + 2.0, y, w - 2.0, kDefaultTextFieldHeight);
        field = [[UITextField alloc] initWithFrame:frame];
        [self.appDel.styleManager decorateTextField:field];
        field.placeholder = @"Last Name*";
        [container addSubview:field];
        self.FormLastName = field;
        self.FormLastName.delegate = self;
        self.FormLastName.clearButtonMode =UITextFieldViewModeAlways;

        y = frame.origin.y + kDefaultTextFieldHeight + spacing;
        frame = CGRectMake(15.0, y, w, kDefaultTextFieldHeight);
        field = [[UITextField alloc] initWithFrame:frame];
        [self.appDel.styleManager decorateTextField:field];
        field.placeholder = @"Birthday";
        [container addSubview:field];
        self.FormBirthday = field;
        self.FormBirthday.delegate = self;

        frame = CGRectMake(15.0 + w + 5.0, y, w - 5.0, kDefaultTextFieldHeight);
        SegmentControl *gender = [[SegmentControl alloc] initWithFrame:frame items:@[@"Boy", @"Girl"]];
        [container addSubview:gender];
        self.Formtype = gender;

        y = frame.origin.y + kDefaultTextFieldHeight + 20.0;
        frame = CGRectMake((container.frame.size.width - 192.0) / 2, y, 192.0, 33.0);
        UIButton *signUpButton = [UIButton buttonWithType:UIButtonTypeCustom];
        signUpButton.frame = frame;
        [signUpButton setTitle:@"Sign Up" forState:UIControlStateNormal];
        [self.appDel.styleManager decorateButton:signUpButton];
        [container addSubview:signUpButton];

        y = frame.origin.y + kDefaultTextFieldHeight + 8.0;
        frame = CGRectMake((container.frame.size.width - 192.0) / 2, y, 192.0, 34.0);
        UIButton *cancelButton = [UIButton buttonWithType:UIButtonTypeCustom];
        cancelButton.frame = frame;
        [cancelButton setTitle:@"Cancel" forState:UIControlStateNormal];
        [self.appDel.styleManager decorateButton:cancelButton];
        [cancelButton addTarget:self action:@selector(cancelRegistration:) forControlEvents:UIControlEventTouchUpInside];
        [container addSubview:cancelButton];
        [container addSubview:self.scrollView];


        _Form = container;
    }
    return _Form;
}

スクロールする必要があるフォームを追加しました。

4

1 に答える 1

0

スクロールビューは、そのサブビューのみをスクロールします。_scrollViewのではなく、のサブビューとしてさまざまなテキストフィールドを追加する必要がありcontainerます。

于 2013-03-02T01:53:47.760 に答える