UIView в UIScrollView не появляется - PullRequest
1 голос
/ 27 февраля 2011

Я пытаюсь создать горизонтально прокручиваемое меню, подобное тому, что в это видео .

По какой-то причине UIView не появляется после добавления группы UIButtons к нему и добавив его к UIScrollView.Вот мой код (он называется в -viewDidLoad подкласса UIViewController):

//set up scrollview
UIScrollView *designPicker = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 431, 320, 49)];

//set up a view to drop into the scroll view
UIView * buttonsView = [[UIView alloc] initWithFrame:CGRectMake(0, 431, 640, 49)];

//add buttons to scrollview
// load all the images from our bundle and add them to the scroll view
NSUInteger i;
float runningX = designPicker.frame.origin.x;
for (i = 1; i <= 10; i++)
{
    UIButton *tempBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [tempBtn setBackgroundImage:[UIImage imageNamed:@"button.png"] forState:UIControlStateNormal];
    CGRect rect = CGRectMake(runningX, designPicker.frame.origin.y, 30.0, 30.0);
    tempBtn.frame = rect;
    [buttonsView addSubview:tempBtn];
    runningX = runningX + 35;
    [tempBtn release];
}

[designPicker setContentSize:buttonsView.frame.size];
[designPicker addSubview:buttonsView];
[self.view addSubview:designPicker];

Ответы [ 2 ]

1 голос
/ 27 февраля 2011

Не следует добавлять кнопки, используя рамку UIScrollView. Источник кадра находится в координатах суперпредставления (суперпредставления UIScrollView). Вы должны сделать рамку кнопок относительно UIView. Поэтому, если вы хотите, чтобы кнопки отображались в верхней части представления, вам следует начать с (0,0).

0 голосов
/ 08 апреля 2013

Вместо добавления scrollview в качестве подпредставления к вашему представлению, добавьте представление в качестве подпредставления scrollview. Венный

[self.scrollView addSubview:self.view];
// release scrollView as self.view retains it
self.view=self.scrollView;
[self.scrollView release];

И убедитесь, что ваш вид должен иметь больший размер контента, чем размер вашего прокрутки. Это сработало для меня.

...