UIScrollView не подпрыгивает по вертикали при прокрутке вверх - PullRequest
2 голосов
/ 10 мая 2011

У меня странная проблема с UIScrollView и UIWebView.Сначала мои настройки:

Я вложил в UIView подкласс и добавил к нему следующий код:


.h

@interface MySubclassedView : UIView {
    UIScrollView *scrollView;
    UIWebView *contentView;
}

@property(nonatomic,retain) UIWebView *contentView;

.m

- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
        [self setupContentView];
    }
    return self;
}

setupContentView

-(void)setupContentView {

    // Content View
    self.contentView = [[UIWebView alloc] init];
    self.contentView.backgroundColor = [UIColor whiteColor];

    // ScrollView
    scrollView = [[UIScrollView alloc] init];
    scrollView.backgroundColor = [UIColor whiteColor];
    scrollView.alwaysBounceVertical = YES;
    [scrollView addSubview:self.contentView];
    [self addSubview:scrollView];
}

и мой компоновщик SubViews

- (void)layoutSubviews {
    XLog(""); // something like NSLog
    [super layoutSubviews];
    scrollView.frame = CGRectMake(0,0, self.width, self.height);
    self.contentView.frame = CGRectMake(0,0, self.width, self.height);
}

Проблема со всем этим в том, что он отскакивает в первый раз, когда мое прокручиваемое изображение не полностью прокручивается до самого верха.после прокрутки прокрутки вверх или вниз я не могу перетащить вид вниз, но метод layoutSubviews вызывается и включается до тех пор, пока я перетаскиваю.

Для лучшего понимания я сделал короткое видео дляпродемонстрировать поведение: http://www.screenr.com/Gy9

спасибо за помощь.если что-то неясно, пожалуйста, дайте мне знать в комментариях.

1 Ответ

2 голосов
/ 10 мая 2011

Мне очень жаль, у меня нет ничего более полезного, но:

Важно: Вы не должны вставлять UIWebView или UITableView объекты в UIScrollView объекты. Если ты так сделаешь, неожиданное поведение может привести к сенсорные события для двух объектов могут быть перепутанным и неправильно обработанным.

от

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/Reference/Reference.html

Не значит, что нет способа заставить его работать. Но, вероятно, означает, что вы хотите ограничить количество времени, которое вы проводите, стуча головой о стену, пытаясь заставить ее работать.

Тем не менее, я успешно встроил UIWebViews в UIScrollViews, если для userInteractionEnabled установлено значение NO.

...