中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iPhone How-to:如何實現Checkbox

發布時間:2020-06-24 22:03:24 來源:網絡 閱讀:2821 作者:benjielin 欄目:開發技術

   在iPhone開發中UISwitch相當于其他UI庫中的Checkbox,使用的時候推薦優先選用。但有些人還是會尋求在應用中使用他們更為熟悉的Checkbox,在一次項目的開發中我就遇到了這樣的需求。本文將探討一種比目前很多實現(比如iPhone UIButton tutorial : Custom Checkboxes)都更簡潔的方案,主要原理就是充分利用UIButton的selected屬性。

Checkbox聲明:

@interface CheckBox : UIButton {
}

@end

Checkbox實現:
@implementation CheckBox

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        [self initilization];
    }
    return self;
}

- (id)initWithCoder:(NSCoder *)aCoder {
    if (self = [super initWithCoder:aCoder]) {
        [self initilization];
    }
    return self;
}

- (void)initilization {
    [self removeTarget:self action:nil forControlEvents:UIControlEventTouchUpInside];
    [self addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside];
}

- (void)onClick: (id)sender {
    self.selected = ![self isSelected];
}

@end

 

其中,initWithFrame和initWithCoder分別用于支持代碼創建和IB創建CheckBox時的初始化工作,并在初始化時添加一個點擊時的處理函數onClick。onClick用于選擇狀態取反。實際應用可以對UIControlEventTouchUpInside事件添加實際需要的處理函數。

 

簡單吧!能夠這樣實現的原因就在于UIButton有Normal、Active、Selected以及Disabled等多種狀態,本質上是包含了Checkbox所需的功能。通過上述的繼承可以封裝了點擊后狀態取反的邏輯,使得在將UIButton當做Checkbox使用的場景下更友好!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

伊金霍洛旗| 大田县| 呼和浩特市| 鲁山县| 安塞县| 大埔区| 潼关县| 岳阳市| 江油市| 沂南县| 吉林省| 宜州市| 宿迁市| 盱眙县| 犍为县| 莱州市| 鲁甸县| 涿州市| 峨眉山市| 鄄城县| 常州市| 巴中市| 额济纳旗| 镇安县| 时尚| 康保县| 建昌县| 梁山县| 平顶山市| 修文县| 黔江区| 龙山县| 宜丰县| 临汾市| 隆尧县| 家居| 绿春县| 新余市| 游戏| 诸城市| 锡林浩特市|