2015-10-10 2 views
0

Я собираюсь добавить UIScrollView в UIView программно. Я попытался использовать для этого следующий код, но scrollview по-прежнему не отключен.Objective-C: Как отключить прокрутку verticall в UIScrollView

-(id)initWithFrame:(CGRect)frame { 
... 
    _scrollView = [[UIScrollView alloc] initWithFrame:CGRectZero]; 
    [self addSubview:_scrollView]; 
... 
} 
-(void)layoutSubviews { 
... 
    _scrollView.frame = CGRectMake(0, 0, self.frame.size.width, 40); 
    [_scrollView setContentSize:CGSizeMake(self.frame.size.width * 2, 40)]; 
... 
} 

Я думаю, что он должен работать, но он не работает сейчас. Пожалуйста, сообщите мне, в чем проблема. Благодаря

+0

Вы пытались установить прокрутку на 'НЕТ'? –

+0

ну, мне нужна горизонтальная прокрутка. – star99

ответ

0

_scrollView.scrollEnabled = NO; установка Try Это отключит scrollView для прокрутки по вертикали или по горизонтали.

UPDATE: Для того, чтобы избежать вертикального скроллинга только

Refer this link

Вы должны установить рамку вашего scrollView, а затем установить его contentSize

_scrollView.contentSize = CGSizeMake(scrollView.contentSize.width,scrollView.frame.size.height); 
+0

отключает как вертикальную, так и горизонтальную прокрутку одновременно. Мне нужно включить только горизонтальную прокрутку. – star99

+0

в моем вопросе, как высота кадра scrollview, так и содержимого составляет 40. Но это не работает. – star99

1

Ну, попробуйте установить contentSize как это:

[_scrollView setContentSize:CGSizeMake(self.frame.size.width * 2, 0)]; 

Сообщите мне о результате. Благодарю. не

+0

извините, но не работает. – star99

-1

Вы можете попробовать так:

[_scrollView setShowsVerticalScrollIndicator: NO];

+0

OP хочет отключить прокрутку. Ваш код просто скроет индикатор прокрутки. Вы должны отредактировать свой ответ. :) –

0

Вы можете попробовать ниже код:

CGFloat y = SCROLLVIEW_HEIGHT; 

self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width, y); 
0

Для этого необходимо установить - ваша высота содержание Scrollview высота вид прокрутки

_scrollView.contentSize = CGSizeMake(_scrollView.contentSize.width,_scrollView.frame.size.height); 

Кроме того, еще один способ

Если scrollView contentSize.height меньше, чем его bounds.size.height, он не будет прокручиваться по вертикали.

Вам нужно установить

scrollView.contentSize = (CGSize){<yourContentWidth>, 1.0} 
+0

в моем вопросе, как высота рамки scrollview, так и содержимого составляет 40. Но это не работает. – star99

0

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

(void)viewDidLoad { 
    [super viewDidLoad]; 
    [self CreateScrollView]; 
} 

(void)CreateScrollView 
{ 
    UIScrollView *Scroll_View = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, 40)]; 
    [self addSubview:Scroll_View]; 
    [_scrollView setContentSize:CGSizeMake(self.frame.size.width * 2, 40)];  
}