ios – 检测对UIWebView的滚动视图的contentSize的更改

ios – 检测对UIWebView的滚动视图的contentSize的更改,第1张

概述我试图在UIScrollView的内容底部设置一个UIView,所以我设置视图的位置为scrollview的contensize heigth.但是我的scrollview是一个UIWebView的子视图,所以当图像加载时,内容大小改变,我的视图应该在滚动视图的底部最后在中间… 所以我正在寻找一种方式在scrollview的内容更改时被通知.我试图进行子类化,并改变setter for conte 我试图在UIScrollVIEw的内容底部设置一个UIVIEw,所以我设置视图的位置为scrollvIEw的contensize heigth.但是我的scrollvIEw是一个UIWebVIEw的子视图,所以当图像加载时,内容大小改变,我的视图应该在滚动视图的底部最后在中间…

所以我正在寻找一种方式在scrollvIEw的内容更改时被通知.我试图进行子类化,并改变setter for contensize以发送NSNotification:

@implementation UIScrollVIEw (Height)-(voID)setContentSize:(CGSize)contentSize{    _contentSize=contentSize;    [[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithname:@"scrollVIEwContentSizeChanged" object:nil]];}@end

但是在编译我得到和错误说:

“_OBJC_IVAR_$_UIScrollVIEw._contentSize”,referenced from:
-[UIScrollVIEw(Heigth) setContentSize:] in MyClass.o
ld: symbol(s) not found for architecture armv7

任何想法如何设置器应该被子类?

谢谢 !

解决方法 也许您可以使用键值观察(KVO)来检测内容大小的更改.我没有尝试过,但代码应该如下所示:
static int kObservingContentSizeChangesContext;- (voID)startObservingContentSizeChangesInWebVIEw:(UIWebVIEw *)webVIEw {    [webVIEw.scrollVIEw addobserver:self forKeyPath:@"contentSize" options:0 context:&kObservingContentSizeChangesContext];}- (voID)stopObservingContentSizeChangesInWebVIEw:(UIWebVIEw *)webVIEw {    [webVIEw.scrollVIEw removeObserver:self forKeyPath:@"contentSize" context:&kObservingContentSizeChangesContext];}- (voID)observeValueForKeyPath:(Nsstring *)keyPath ofObject:(ID)object change:(NSDictionary *)change context:(voID *)context {    if (context == &kObservingContentSizeChangesContext) {        UIScrollVIEw *scrollVIEw = object;        NSLog(@"%@ contentSize changed to %@",scrollVIEw,NsstringFromCGSize(scrollVIEw.contentSize));    } else {        [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];    }}

如果不行,可能需要调整setContentSize:方法.方法swizzling允许您的替换方法调用原始方法,这是您需要做的将新内容大小传递到滚动视图.

您可以在这里阅读更多关于方法swizzling的信息:http://www.mikeash.com/pyblog/friday-qa-2010-01-29-method-replacement-for-fun-and-profit.html

我认为这是最流行的代码:https://github.com/rentzsch/jrswizzle

总结

以上是内存溢出为你收集整理的ios – 检测对UIWebView的滚动视图的contentSize的更改全部内容,希望文章能够帮你解决ios – 检测对UIWebView的滚动视图的contentSize的更改所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1111452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存