我在我的项目中使用来自github的RTSPagedView
。这给了我这个警告
Property type 'id<RTSPagedViewDelegate>' is incompatible with type 'id<UIScrollViewDelegate>' unherited from 'UIScrollView'
在
@property (nonatomic, assign) IBOutlet id <RTSPagedViewDelegate> delegate;
RTSPagedView.h
中的
应用程序正常处理此警告。任何人之前都遇到过这个问题,或者知道解决方案请帮助。
此链接为RTSPagedView
// RTSPagedView.h
// PagedView
// http://github.com/rplasman/RTSPagedView
#import <UIKit/UIKit.h>
@protocol RTSPagedViewDelegate;
@interface RTSPagedView : UIScrollView
@property (nonatomic, assign) IBOutlet id <RTSPagedViewDelegate> delegate;
@property (nonatomic, assign) NSUInteger currentPage;
@property (nonatomic, readonly) NSUInteger numberOfPages;
@property (nonatomic, assign) BOOL continuous;
- (void)resizeBounds:(CGRect)bounds;
- (UIView *)dequeueReusableViewWithTag:(NSInteger)tag;
- (UIView *)viewForPageAtIndex:(NSUInteger)index;
- (void)scrollToPageAtIndex:(NSUInteger)index animated:(BOOL)animated;
- (void)reloadData;
- (NSUInteger)indexForView:(UIView *)view;
@end
@protocol RTSPagedViewDelegate <UIScrollViewDelegate>
- (NSUInteger)numberOfPagesInPagedView:(RTSPagedView *)pagedView;
- (UIView *)pagedView:(RTSPagedView *)pagedView viewForPageAtIndex:(NSUInteger)index;
@optional
- (void)pagedView:(RTSPagedView *)pagedView didScrollToPageAtIndex:(NSUInteger)index;
- (void)pagedView:(RTSPagedView *)pagedView didRecycleView:(UIView *)view;
@end
答案 0 :(得分:3)
以这种方式尝试:
@property (nonatomic, assign) IBOutlet id <UIScrollViewDelegate, RTSPagedViewDelegate> delegate;
适合我。
答案 1 :(得分:2)
问题发生是因为
@property (nonatomic, assign) IBOutlet id <RTSPagedViewDelegate> delegate;
因为UIScrollViewDelagate
是从RTSPagedView
继承而来的,所以这个delagate正在考虑UIScrollView
。
使用任何其他名称修改完整的委托名称,例如
@property (nonatomic, assign) IBOutlet id <RTSPagedViewDelegate> rtspDelegate;
它将删除警告。
答案 2 :(得分:0)
我认为(我不能确定没有更多代码)你没有宣布你的委托类符合RTSPagedViewDelegate
协议。
试试这个:
YourClass.h:
@interface YourClass : NSObject <UIScrollViewDelegate, RTSPagedViewDelegate>
...
@end
现在你做的时候:
rtsPageView.delegate = self;
警告应该消失。
这可能是完全垃圾,在这种情况下我会删除它。