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;
}

设置内容视图

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

我真的很抱歉我没有更有用的东西,但是:

重要提示:您不应该在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆并错误处理。

从:

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

并不意味着没有办法让它发挥作用。但可能意味着你想限制你用头撞墙试图让它工作的时间。

也就是说,只要一个人的 userInteractionEnabled 设置为 NO,我就已经成功地将 UIWebViews 嵌入到 UIScrollViews 中。

于 2011-05-10T19:36:30.593 回答