首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我从UIDynamicAnimator继承的类不能使用addChildBehavior

为什么我从UIDynamicAnimator继承的类不能使用addChildBehavior
EN

Stack Overflow用户
提问于 2015-03-04 14:52:48
回答 2查看 162关注 0票数 0

我正在斯坦福大学CS193P学习ios,在第八节课上有问题。

我从DropItBehavior创建了一个名为UIDynamicAnimator继承的类,但是我不能使用UIDynamicAnimator方法addChildBehavior,xcode警告"DropItBehavior“声明了选择器‘addChildBehavior’。

这是.h文件

代码语言:javascript
复制
#import <UIKit/UIKit.h>

@interface DropItBehavior : UIDynamicAnimator

- (void)addItem:(id <UIDynamicItem>)item;
- (void)removeItem:(id <UIDynamicItem>)item;

@end

这是.m文件

代码语言:javascript
复制
#import "DropItBehavior.h"

@interface DropItBehavior()
@property (strong, nonatomic) UIGravityBehavior *gravity;
@property (strong, nonatomic) UICollisionBehavior *collision;
@end

@implementation DropItBehavior

- (instancetype)init
{
    self = [super init];
    [self addChildBehavior:self.gravity];//Here is the Xcode warning"No visible @interface for "DropItBehavior" declares the selector 'addChildBehavior"
    return self;
}
- (instancetype)init
{
    self = [super init];
    [self addChildBehavior:self.gravity];
    return self;
}
- (UIGravityBehavior *)gravity
{
    if (!_gravity) {
        _gravity = [[UIGravityBehavior alloc] init];
        _gravity.magnitude = 0.9;
    }
    return _gravity;
}

- (UICollisionBehavior *)collision
{
    if (!_collision) {
        _collision = [[UICollisionBehavior alloc] init];
        _collision.translatesReferenceBoundsIntoBoundary = YES;
    }
    return _collision;
}

- (void)addItem:(id <UIDynamicItem>)item
{
    [self.gravity addItem:item];
    [self.collision addItem:item];

}

- (void)removeItem:(id <UIDynamicItem>)item
{
    [self.gravity removeItem:item];
    [self.collision removeItem:item];
}



@end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-04 15:02:31

这是因为addChildBehaviorUIDynamicBehavior的方法,而不是UIDynamicAnimator的方法。根据CS-193p的课堂讲稿,您的DropIt类应该继承UIDynamicBehavior

代码语言:javascript
复制
@interface DropItBehavior : UIDynamicBehavior
票数 2
EN

Stack Overflow用户

发布于 2015-03-04 15:02:04

查看文档,既没有方法-[UIDynamicAnimator addChildBehavior:],也没有子类。

然而,UIDynamicBehavior确实如此。

我会再次检查您是否正在对正确的对象进行子类化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28857529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档