2013-04-25 3 views
1

Я разместил UIScrollView в ViewController в IB и дал вид tag:1. В viewDidLoad:, у меня есть этот код:Почему мой UIScrollView не работает?

UIScrollView *scrollView = (id)[self.view viewWithTag:1]; 

scrollView.backgroundColor = [UIColor clearColor]; 
scrollView.opaque = NO; 

[scrollView setScrollEnabled:YES]; 
[scrollView setContentSize:CGSizeMake(320, 800)]; 

У меня есть ползунок и метку в ScrollView просто чтобы увидеть, если она прокручивается, но не прокручивается на всех. Я могу изменить backgroundColor, например, yellowColor, но он не прокручивается. Есть ли способ или действие, которое я должен добавить? Пожалуйста помоги! :)

+0

вашего кода работает отлично дорогой некоторые где вы пошли не раз check.is там какой-нибудь вида с одного тегом или подобными. – Balu

+0

Ну, я подозреваю, что это факт, что у меня есть начальный viewController, где я нажимаю tableviewCell, который приводит меня к просмотру с помощью scrollview. Может ли это иметь какое-то отношение к этому? –

ответ

0
scrollView.backgroundColor = [UIColor clearColor]; 

измените это на что-нибудь яркое, как красный или зеленый для тестирования.

UIScrollView *scrollView = (id)[self.view viewWithTag:1]; 
scrollView.backgroundColor = [UIColor clearColor]; 

также убедитесь, что ваш Scrollview разве ноль (после получения от [self.view viewWithtag:1]. В противном случае код кажется OK

EDIT

выберите вид прокрутки в интерфейсе строителя> перейти в редактор атрибутов> клещ скроллинг включен

enable scrolling

+0

Изменения фона, я протестировал это. Должен ли я настроить scrollView на себя? –

+0

OK.если вы используете построитель интерфейсов, выберите свой scrollview в IB> атрибут inspector> tick "scrolling enabled" – nsuinteger

+0

Я установил прокрутку Enabled .. –

0

здесь может быть проблема его с множеством TopBar из UIView с UINavigationBar из XIB, а также BottomBar этого ... Вот от XIB первого выбора основного UIView после щелчка на Attribute Inspector после в моделируемых показателей набор Панель навигации как TopBar и после заданного кадра UIScrollView в XIB ,

попробовать с кодом сильфона он работал ..

[scrollView setContentSize:CGSizeMake(320, 844)]; 
+0

Я сделал это, но это не сработало. –

+0

попытаться увеличить высоту содержимого ... возможно, это сработает ... –

+0

@HenrikLP также добавляет эту строку наконец [scrollView setUserInteractionEnabled: YES]; –

2

У меня была такая же проблема, не так давно, но это сделал трюк.

Использование - (Недействительными) viewDidAppear: (BOOL) анимированный { ... }

-(void)viewDidAppear:(BOOL)animated { 

    [super viewDidAppear:YES]; 

    scrollView.backgroundColor = [UIColor clearColor]; 

    scrollView.opaque = NO; 

    [scrollView setScrollEnabled:YES]; 

    [scrollView setContentSize:CGSizeMake(320, 800)]; 

    [super viewDidLoad]; 
} 

также объявить UIScrollView в своем заголовке

@property (retain, nonatomic) IBOutlet UIScrollView *scrollView; 
+0

Thisk работал! Ты мне очень помог! –

+0

рад, что это помогло! – Roecrew

2

Попробуйте Как это

UIScrollView *scrollView = (id)[self.view viewWithTag:1]; 
scrollView.frame=CGRectMake(0, 0, 320, 460); 
[self.view addSubview:scrollView]; 
scrollView.backgroundColor = [UIColor clearColor]; 
scrollView.opaque = NO; 
[scrollView setScrollEnabled:YES]; 
[scrollView setContentSize:CGSizeMake(320, 800)]; 

потому что, когда высота просмотра прокрутки пересекает текущую высоту представления, тогда только его можно прокручивать.

0

попробуйте добавить этот код в viewWillAppear

UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:1]; 
scrollView.frame=CGRectMake(0, 0, 320, 400); 
scrollView.backgroundColor = [UIColor clearColor]; 
[scrollView setScrollEnabled:YES]; 
[scrollView setContentSize:CGSizeMake(320, 800)]; 
[scrollView setUserInteractionEnabled:YES]; 

надежда поможет вам

Смежные вопросы