UIScrollView contentSize изменение размера

Я сталкиваюсь со странной проблемой и проверяю SO на предмет решения, но пока ничего, поэтому я решил спросить. У меня есть mainView (цвет фона белый) внутри UIScrollView (цвет фона зеленый) и другие виды в mainView. В конце динамического заполнения представлений данными я позвонил

self.scrollView.contentSize = CGSizeMake(320, _v5.frame.size.height + _v5.frame.origin.y + 20);

где _v5 - последнее представление в основном представлении в представлении прокрутки. Тем не менее, похоже, что mainView не изменяет размер до размера Scrollview, и, следовательно, виды под белым цветом не получают касаний. Что я делаю неправильно? Спасибо

Это мой viewDidLoad

- (void)viewDidLoad
{
self.navigationItem.title = _type;
self.scrollView.contentSize = CGSizeMake(320, 610);

addressTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleMap:)];
websiteTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleWebsite:)];

[_lblWebsite setUserInteractionEnabled:YES];
[_lblAddress setUserInteractionEnabled: YES];
[_lblWebsite addGestureRecognizer:websiteTap];
[_lblAddress addGestureRecognizer:addressTap];

        _txtName.text = object[@"name"];
        available =  object[@"sDate"];
        website = object[@"website"];
        anyinfo = object[@"info"];
        PFUser *my = object[@"owner"];
        organiser = my[@"username"];
        if (organiser.length > 0){
            _txtOrganiser.text = organiser;
        }
        address = object[@"address"];
        NSDate *date = object[@"sDate"];

        if (address.length > 0){
            _lblAddress.text = address;
        }
        else{
            _lblAddress.text= @"Not provided";
        }
        if (date){
            _lblOpen.text = [display stringFromDate:date];
        }
        if (website.length > 0){
            _lblWebsite.text = website;
        }
        else{
            _lblWebsite.text= @"Not provided";
        }

        if (anyinfo.length > 0){
            _txtInfo.text = anyinfo;
            [self updateFrames];
        }
        self.scrollView.contentSize = CGSizeMake(320, _v5.frame.size.height + _v5.frame.origin.y + 20);
    } else {
        [self performSelectorOnMainThread:@selector(showAlert) withObject:nil waitUntilDone:YES];
        NSLog(@"Error %@", error.description);
    }
}];

[super viewDidLoad];
}

и это обновление кадра

- (void) updateFrames{
_txtInfo.numberOfLines = 0;
_txtInfo.lineBreakMode = NSLineBreakByWordWrapping;
[_txtInfo sizeToFit];

_txtInfo.frame = CGRectMake(_txtInfo.frame.origin.x,_txtName.frame.origin.y + 10+ _txtName.frame.size.height, _txtInfo.frame.size.width, _txtInfo.frame.size.height);

_v1.frame = CGRectMake(_v1.frame.origin.x, _txtInfo.frame.origin.y + _txtInfo.frame.size.height +7, _v1.frame.size.width, _v1.frame.size.height);

_imgOrganiser.frame = CGRectMake(_imgOrganiser.frame.origin.x,_v1.frame.origin.y + 7, _imgOrganiser.frame.size.width, _imgOrganiser.frame.size.height);

_txtOrganiser.frame = CGRectMake(_txtOrganiser.frame.origin.x,_v1.frame.origin.y + 20, _txtOrganiser.frame.size.width, _txtOrganiser.frame.size.height);

_v2.frame = CGRectMake(_v2.frame.origin.x, _imgOrganiser.frame.origin.y + _imgOrganiser.frame.size.height +7, _v2.frame.size.width, _v2.frame.size.height);

_lblAddress.numberOfLines = 0;
_lblAddress.lineBreakMode = NSLineBreakByWordWrapping;
[_lblAddress sizeToFit];

_lblAddress.frame = CGRectMake(_lblAddress.frame.origin.x,_v2.frame.origin.y + 7, _lblAddress.frame.size.width, _lblAddress.frame.size.height);

_pin.frame = CGRectMake(_pin.frame.origin.x,_v2.frame.origin.y + 15, _pin.frame.size.width, _pin.frame.size.height);

_v3.frame = CGRectMake(_v3.frame.origin.x, _lblAddress.frame.origin.y + _lblAddress.frame.size.height +7, _v3.frame.size.width, _v3.frame.size.height);

_calender.frame = CGRectMake(_calender.frame.origin.x,_v3.frame.origin.y + 5, _calender.frame.size.width, _calender.frame.size.height);

_lblOpen.frame = CGRectMake(_lblOpen.frame.origin.x,_v3.frame.origin.y + 7, _lblOpen.frame.size.width, _lblOpen.frame.size.height);

_v4.frame = CGRectMake(_v4.frame.origin.x, _calender.frame.origin.y + _calender.frame.size.height +7, _v4.frame.size.width, _v4.frame.size.height);

_link.frame = CGRectMake(_link.frame.origin.x,_v4.frame.origin.y + 5, _link.frame.size.width, _link.frame.size.height);

_lblWebsite.frame = CGRectMake(_lblWebsite.frame.origin.x,_v4.frame.origin.y + 7, _lblWebsite.frame.size.width, _lblWebsite.frame.size.height);

_v5.frame = CGRectMake(_v5.frame.origin.x, _lblWebsite.frame.origin.y + _lblWebsite.frame.size.height +7, _v5.frame.size.width, _v5.frame.size.height);

self.scrollView.contentSize = CGSizeMake(320, _v5.frame.size.height + _v5.frame.origin.y + 20);}

0 ответов

Другие вопросы по тегам