ios - UIScrollView 的委托(delegate)方法未触发

标签 ios delegates uiscrollviewdelegate

我无法在我的自定义类中触发 viewDidScroll 方法...我知道,我知道这已经出现在多个 stackoverflow 帖子中...我已经阅读了几十篇...请帮忙!

遵循其他 S.O. 的指示帖子,

我已在 .h 文件中添加了协议(protocol):

@interface ISCByStyleView : UIViewController <UIScrollViewDelegate>

我已在此自定义类的 .h 文件中声明了一个“委托(delegate)”属性:

@property (nonatomic, strong) id delegate;

我在 .m 文件中引用了委托(delegate),如下所示:

self.delegate=self;

但是当我滚动 ScrollView 时,viewDidSCroll 方法将不会触发。

这是 .h 文件:

#import <UIKit/UIKit.h>
#import "FMDatabase.h"
#import "FMResultSet.h"
#import "ISCAppDelegate.h"

@interface ISCByStyleView : UIViewController <UIScrollViewDelegate>

@property (nonatomic, strong) id delegate;

@property (weak, nonatomic) IBOutlet UIView *iboStylesView;

@end

这是 .m 的重要部分

#import "ISCByStyleView.h"
#import "ISCTableView.h"

@interface ISCByStyleView ()

@property NSNumber *selectedStyle;
@property NSNumber *selectedQuery;
@property NSTimer *ssTimer;

@end

@implementation ISCByStyleView

- (void)viewDidLoad {
    [super viewDidLoad];

    self.delegate=self;

...

- (void) resetTimer {
    [self.ssTimer invalidate];
    self.ssTimer = [NSTimer scheduledTimerWithTimeInterval:30 target:self  selector:@selector(launchScreenSaver) userInfo:Nil repeats:NO];
NSLog (@"Timer Reset");
}

//Reset with Scrolling
- (void) scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog (@"ByStyleView: scrollDidScroll event");
    [self resetTimer];

}

最佳答案

ISCByStyleView 是一个 UIViewController,因此您不想设置自己的委托(delegate)。相反,您需要将 UIScrollView 的委托(delegate)设置为自己,例如:

self.scrollview.delegate = self;

并使用以下行在 .h 中声明 delegate 属性:@property (nonatomic, strong) id delegate; 是不必要的。

编辑:您也可以完全在 Interface Builder 中设置 UIScrollView 的委托(delegate),如果您是在此处创建它的话:

第 1 步:

enter image description here

第 2 步:

enter image description here

关于ios - UIScrollView 的委托(delegate)方法未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28373337/

相关文章:

ios - 分享 pdf 文档 .Swift

ios - 适用于网站和 iOS 的 CloudKit

ios - Twitter iOS GET statuses/home_timeline 使用 Parse

ios - 在 UiTableView 之上创建一个按钮

iphone - 他们是如何在iPhone app中实现垂直过渡的动画的?

c# - 在方法签名中使用委托(delegate)和使用 Func<T>/Action<T> 有什么区别?

ios - 未调用 BEMCheckBox 委托(delegate)

ios - iOS8 委托(delegate)方法中的 nil 对象 - 自定义键盘

objective-c - UIScrollView滚动时如何触发 Action ?

ios - IOS中如何调用UITableView的ScrollViewDidScroll委托(delegate)方法