2

UIScrollViewその中の aと aに奇妙な問題があり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];
}

そして私のlayoutSubViews

- (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

すべての助けに感謝します。不明な点がある場合は、コメントでお知らせください。

4

1 に答える 1

2

他に役立つものがなくて本当に申し訳ありませんが、次のとおりです。

重要: UIWebView または UITableView オブジェクトを UIScrollView オブジェクトに埋め込まないでください。これを行うと、2 つのオブジェクトのタッチ イベントが混同され、誤って処理される可能性があるため、予期しない動作が発生する可能性があります。

から:

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

それを機能させる方法がないという意味ではありません。しかし、おそらく、頭を壁にぶつけて機能させるために費やす時間を制限したいということを意味します.

つまり、userInteractionEnabled が NO に設定されている限り、UIScrollViews に UIWebViews を正常に埋め込むことができました。

于 2011-05-10T19:36:30.593 に答える