ios switch外观_iOS--写一个可以自定义图片的SwitchView

这篇博客分享了如何自定义一个图片切换的SwitchView,包括设置点击间隔、动作延迟回调等功能。作者提供了详细的代码实现,包括设置文字颜色、大小、背景色以及图片等,并提到了布局使用Masonry,延迟回调采用NSOperation队列。博客还附带了效果图,适用于iOS开发者参考。
摘要由CSDN通过智能技术生成

6788fbfcfa47

好久不写UI、正好项目里遇到一个需要自定义图片的SwitchView。

写了写封装了一下、感觉挺有意思干脆贴出来好了、没准对谁有用。

效果图如下、有需要可以自取。

6788fbfcfa47

主要写了以下的几个功能

可以设置X秒内不允许点击。

可以设置X秒后无新动作再的捕获回调。

自定义文字颜色、大小

自定义背景色

自定义图片

.h文件如下

//

// KTSwitchView.h

// BaiSongInternational

//

// Created by 刘嵩野 on 2018/4/3.

// Copyright © 2018年 maqihan. All rights reserved.

//

#import

@class KTSwitchView;

typedef NS_OPTIONS(NSUInteger, KTSwitchViewStyle) {

//选中状态

KTSwitchViewStyle_Selected = 1 << 0,

//普通状态

KTSwitchViewStyle_Default = 1 << 1,

};

@protocol KTSwitchViewDelegate

/**

* selected属性改变的时候调用

*/

- (void)KTSwichViewDidChange:(KTSwitchView *)swichView;

/**

* selected一定时间后没有再改变时调用 默认0s、也就是不走这个回调

*/

- (void)KTSwichViewDidDelayChange:(KTSwitchView *)swichView;

@end

@interface KTSwitchView : UIView

@property (nonatomic, weak) id delegate;

/* 延迟多久可以再次点击 */

@property (nonatomic, assign) NSTimeInterval eventInterval;

/* 延迟多久回调 BSSwichViewDidDelayChange 默认0s*/

@property (nonatomic, assign) NSTimeInterval delayTime;

@property (nonatomic) UIFont * font;

@property (nonatomic) BOOL selected;

/**

* 可以KTSwitchViewStyle_Default|KTSwitchViewStyle_Selected同时设定两种状态

*/

- (void)setContentText:(NSString *)contentText style:(KTSwitchViewStyle)style;

- (void)setTextColor:(UIColor *)textColor style:(KTSwitchViewStyle)style;

- (void)setImage:(UIImage *)img style:(KTSwitchViewStyle)style;

- (void)setImageBgColor:(UIColor *)color style:(KTSwitchViewStyle)style;

- (void)setBgcolor:(UIColor *)bgcolor style:(KTSwitchViewStyle)style;

@end

需要注意的是

布局使用的是Masonry、需要项目支持。

延迟回调用的是NSOperation队列、每次点击废弃队列中的旧操作。

其实也可以(或者说从场景上更适合)用定时器、但是个人情感上不太喜欢不断的开关某个定时器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值