我已经阅读了有关此确切主题的所有帖子,但我仍无法检测到用户何时在此iPad应用上滚动...
我的.h:
#import <UIKit/UIKit.h>
@interface MyApp_ViewController : UIViewController <UIScrollViewDelegate>
{
}
@property (weak, nonatomic) IBOutlet UIButton *otherButton;
@property (weak, nonatomic) IBOutlet UIScrollView *otherScrollView;
@property (weak, nonatomic) IBOutlet UITextView *txtViewHTML;
-(void)k_RootViewPrint:(NSString *) data;
-(void)ActionEventForButton: (id) sender;
@end
我的.m:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"...");
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"2222");
}
- (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event
{
NSLog(@"touches ended BS");
}
但它们都不起作用?我确信这很简单,但我已经做了我能想到的一切,但仍然没有。任何正确方向的指导都将深表感谢!
答案 0 :(得分:2)
如果它没有登录scrollViewDidScroll:
,则滚动视图的委托不会设置为视图控制器。
您可以在调试器中进行检查。应用程序启动后,暂停调试器并运行以下命令:
po [[(id)UIApp keyWindow] recursiveDescription]
查看输出以查找UIScrollView的地址。会有一行代表<UIScrollView: 0xc894d60 ...>
。获取地址(我的示例中为0xc894d60
)并在此调试器命令中使用它:
po [0xc894d60 delegate]
如果打印出类似<MyApp_ViewController: 0x6a7f6c0>
的内容,则表示您的委托设置正确。如果它打印“无法打印NIL对象的描述。”,则表示您尚未设置滚动视图的委托。如果它打印其他内容,则表示滚动视图的委托不正确。
答案 1 :(得分:1)
您是否已将UIScrollView上的委托设置为ViewController?
答案 2 :(得分:1)
对于可能像我一样迷失的其他人,这是代码中的解决方案:
- (void)viewDidLoad
{
[super viewDidLoad];
self.otherScrollView.delegate = self; // This is the KEY
答案 3 :(得分:0)
检查您是否设置了委托,然后尝试
尝试实施`
- (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event
{
// If not dragging, send event to next responder
if (!self.dragging)
[self.nextResponder touchesEnded: touches withEvent:event];
else
[super touchesEnded: touches withEvent: event];
}
`