繁体   English   中英

子类化UIView并添加属性

[英]Subclassing UIView and adding a property

我尝试子类化UIView。 因为我想在UIView中使用一个枚举,所以我可以检查游戏中是否需要两次敲击UIView。 但是我没有太多的子类化经验。 而且它不起作用。 还是我需要创建一个类别?

我所做的事情:

  • 制作子类UIView
  • 在自定义子类中创建属性
  • 将类从UIView更改为情节提要中的子类
  • 将所有UIView声明从我的游戏类更改为子类声明

码:

#import <UIKit/UIKit.h>

typedef NS_ENUM(NSInteger, viewStaat) {
    ENUMEnkelTap,
    ENUMDubbelTap
};

@interface BannerView : UIView

@property (nonatomic, assign) viewStaat staatVanDeView;

@end

并在UIView的init中声明属性。

@synthesize staatVanDeView;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        staatVanDeView = ENUMDubbelTap;
        NSLog(@"Set");
    }
    return self;
}

日志没有被调用,所以我不知道出了什么问题。 staatVanDeView的整数始终保持为0。

从情节提要板实例化视图时,不会调用-initWithFrame:方法。 使用-initWithCoder:代替:

- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
         staatVanDeView = ENUMDubbelTap;
    }
    return self;
} 

而且您不需要线

@synthesize staatVanDeView;

因为属性的getter和setter是在最近的iOS版本中自动创建的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM