ios17 自定義控制項2改進

2021-09-22 07:00:33 字數 3045 閱讀 6968

控制器:

//

#import

@inte***ce

xm**iewcontroller : uiviewcontroller

@end

//

#import

"xm**iewcontroller.h

"#import

"xmgshop.h

"#import

"xmgshopview.h

"@inte***ce

xm**iewcontroller ()

@property (weak, nonatomic) iboutlet uiview *shopcarview;

@property (weak, nonatomic) iboutlet uibutton *addbutton;

@property (weak, nonatomic) iboutlet uibutton *removebutton;

@property (nonatomic, strong) nsarray *dataarr;

@end

@implementation

xm**iewcontroller/**

* 懶載入 */

- (nsarray *)dataarr

self.dataarr =temparray;

}return

_dataarr;}//

初始化資料

- (void

)viewdidload /**

* 新增到購物車

* * @param button 按鈕 */

- (ibaction)add:(uibutton *)button /**

* 從購物車中刪除

* * @param button 按鈕 */

- (ibaction)remove:(uibutton *)button

@end

自定義控制項:

//

#import

@inte***ce

xmgshopview : uiview

//readonly 只會呼叫get方法

/** 控制項

*///

@property (nonatomic, weak, readonly) uiimageview *iconview;

//[self addsubview:iconview];已經有強指標引用了,這裡用weak

/** 標題控制項

*///

@property (nonatomic, weak, readonly) uilabel *titlelabel;

//提供介面方法

- (void)seticon: (nsstring *)icon;

- (void)setname: (nsstring *)name;

@end

//

#import

"xmgshopview.h

"@inte***ce xmgshopview () //

擴充套件屬性

@property (nonatomic, strong) uiimageview *iconview;//

[self addsubview:iconview];有強指標指向了,用weak

* 初始化子控制項(不要設定frame) *

*/-(instancetype)init

return

self;}/*

* * 布局子控制項(可以拿到frame) */

- (void

)layoutsubviews

- (void)seticon:(nsstring *)icon

- (void)setname:(nsstring *)name

@end

bean:

//

#import

@inte***ce

xmgshop : nsobject

/** 的名稱

*/@property (nonatomic, copy) nsstring *icon;

/** 商品的名稱

*/@property (nonatomic, copy) nsstring *name;

//提供構造方法

/*- (instancetype)initwithicon: (nsstring *)icon name: (nsstring *)name;

+ (instancetype)shopwithicon: (nsstring *)icon name: (nsstring *)name; */

- (instancetype)initwithdict:(nsdictionary *)dict;

+ (instancetype)shopwithdict:(nsdictionary *)dict;

@end

//

#import

"xmgshop.h

"@implementation

xmgshop

/*- (instancetype)initwithicon:(nsstring *)icon name:(nsstring *)name

return self;

}+ (instancetype)shopwithicon:(nsstring *)icon name:(nsstring *)name */

- (instancetype)initwithdict:(nsdictionary *)dict

return

self;

}+ (instancetype)shopwithdict:(nsdictionary *)dict

@end

自定義控制項(2)

自定義伺服器控制項屬性的特性 bindable 這個特性表示屬性是否可以繫結乙個有效資料來源。通常使用布林值進行設定。例如 bindable true 如果使用值true標記屬性,表示該屬性可以繫結乙個有效資料來源,且應引發該屬性的屬性更改通知。browsable 指定屬性是否應該在屬性瀏覽器中顯示...

IOS 控制項 自定義UISlider Slider

在軟體中看到的滑塊都比較好看,在網上找了幾個例子,知道怎麼自定義uislider的樣式和滑塊 先建立uislider slider1 uislider alloc initwithframe cgrectmake 30,30,257,7 再設定顏色和數值範圍以及預設值的大小 slider1.back...

ios 自定義控制項 方法

initwithframe 前面已經見到,程式建立 ui控制項時常常會呼叫該方法執行初始化,因此,如果你需要對 ui控制項執行一些額外的初始化,即可通過重寫該方法來實現。initwithcoder 程式通過在 nib檔案中載入完該控制項後會自動呼叫該方法。因此,如果程式需要在 nib檔案中載入該控制...