第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

子類UIButton添加屬性

子類UIButton添加屬性

慕容森 2019-08-02 14:33:09
子類UIButton添加屬性我想子類UIButton添加一些我需要的屬性(不是方法...只有屬性)。這是我的子類的代碼://.h-----------------------@interface MyButton : UIButton{     MyPropertyType *property;}@property (nonatomic,retain) MyPropertyType *property;@end//.m--------------------------@implementation MyButton@synthesize property;@end在這里我如何使用該類:MyButton *btn = ((MytButton *)[MyButton buttonWithType:UIButtonTypeRoundedRect]);btn.property = SomeDataForTheProperty;從哪里獲得此錯誤: -[UIRoundedRectButton setProperty:]: unrecognized selector sent to instance 0x593e920因此,從ButtonWithType我獲得一個UIRoundedRectButton,(Mybutton *)不能施展它...我需要做什么來獲得一個MyButton對象?是-init唯一的解決方案?謝謝!
查看完整描述

3 回答

?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗 獲得超9個贊

我有一個簡單的方案,只涉及一些庫方法,沒有樣板,只有3行代碼,你想要添加每個屬性。下面添加了兩個示例屬性:startPoint和tileState。為了便于說明,這里是您需要為像tileState這樣的屬性添加的行:


//@property (assign, nonatomic) SCZTileState tileState; // tileState line 1 

//@property (assign, nonatomic) SCZTileState tileState; // tileState line 2 

//@dynamic tileState;                                   // tileState line 3

我的博客文章中有更多細(xì)節(jié)描述了它的工作原理


的UIButton + SCZButton.h


#import <UIKit/UIKit.h>


@interface UIButton (SCZButton)

@property (readwrite, nonatomic) id assocData;

@end

的UIButton + SCZButton.m


//  UIButton+SCZButton.m

//  Copyright (c) 2013 Ooghamist LLC. All rights reserved.


#import "UIButton+SCZButton.h"

#import <objc/runtime.h>


@implementation UIButton (SCZButton)

- (id)assocData {

    id data = objc_getAssociatedObject(self, "SCZButtonData");

    return data;

}

- (void)setAssocData:(id)data {

    objc_setAssociatedObject(self, "SCZButtonData", data,  

                             OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}

@end

OOGTotallyTile.h


//  UIButton+OOGTotallyTile.m

//  Copyright (c) 2013 Ooghamist LLC. All rights reserved.

#import <UIKit/UIKit.h>

#import "UIButton+SCZButton.h"

#define kPointLabelTag 837459


typedef enum {

    SCZTileStatePlaced,

    SCZTileStateDropping,

    SCZTileStateDropped

} SCZTileState;


@interface SCZButtonData : NSObject

@property (assign, nonatomic) CGPoint startPoint;

@property (assign, nonatomic) SCZTileState tileState;   // tileState line 1

@end


@interface UIButton (OOGTotallyTile)

@property (readonly, nonatomic) SCZButtonData *buttonData;

@property (assign, nonatomic) CGPoint startPoint;

@property (assign, nonatomic) SCZTileState tileState;  // tileState line 2

@end

OOGTotallyTile.m


//  UIButton+OOGTotallyTile.m

//  Copyright (c) 2013 Ooghamist LLC. All rights reserved.


#import "OOGTotallyTile.h"


@implementation SCZButtonData

@end


@implementation UIButton (OOGTotallyTile)

@dynamic startPoint;

@dynamic tileState; // tileState line 3


- (SCZButtonData*)buttonData {

    if ( ! self.assocData) {

        self.assocData = [[SCZButtonData alloc] init];

    }

    return self.assocData;

}

- (id)forwardingTargetForSelector:(SEL)aSelector {

    id forwardingTarget = [super forwardingTargetForSelector:aSelector];

    if ( ! forwardingTarget) {

        return [self buttonData];

    }

    return forwardingTarget;

}

@end


查看完整回答
反對 回復(fù) 2019-08-02
  • 3 回答
  • 0 關(guān)注
  • 677 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號