当前位置: 首页 > 编程日记 > 正文

swiftswift3.0自己封装的快速构建页面的方法

//#param mark 控件

    func creatLabel(frame:CGRect,text:String,textColor:UIColor,textFont:CGFloat,textAlignment:NSTextAlignment) -> UILabel {

        let label = UILabel.init(frame: frame)

        label.text = text

        label.textColor = textColor

        label.font = UIFont.systemFont(ofSize: textFont)

        label.textAlignment = textAlignment

        scorllView!.addSubview(label)

        return label

    }

    

    func creatBtn(frame:CGRect,text:String,textColorNor:UIColor,textColorHig:UIColor,textFont:CGFloat,imageNor:String,imageHig:String,btnSet:Bool,target:Selector,textAlignment : NSTextAlignment,borderColor : UIColor) -> UIButton {

        

        let btn = UIButton.init(frame: frame)

        btn.setTitle(text, for: .normal)

        btn.setTitleColor(textColorNor, for: .normal)

        btn.setTitleColor(textColorHig, for: .selected)

        btn.setTitleColor(textColorHig, for: .highlighted)

        btn.setImage(UIImage.init(named: imageNor), for: .normal)

        btn.setImage(UIImage.init(named: imageHig), for: .highlighted)

        btn.setImage(UIImage.init(named: imageHig), for: .selected)

        btn.isEnabled = btnSet

        

        if IS_IPHONE_4_OR_LESS {

            

            btn.titleEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 40)

            btn.imageEdgeInsets = UIEdgeInsetsMake(5,UIScreen.main.bounds.width / 2 - 45, 5, -(UIScreen.main.bounds.width / 2 - 115))

            

        }

        

        if IS_IPHONE_5 || IS_IPHONE_SE{

            

            btn.titleEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 40)

            btn.imageEdgeInsets = UIEdgeInsetsMake(5,UIScreen.main.bounds.width / 2 - 45, 5, -(UIScreen.main.bounds.width / 2 - 115))

            

        }

        

        if IS_IPHONE_6 || IS_IPHONE_7{

            

            btn.titleEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 40)

            btn.imageEdgeInsets = UIEdgeInsetsMake(5,UIScreen.main.bounds.width / 2 - 55, 5, -(UIScreen.main.bounds.width / 2 - 130))

            

        }

        

        if IS_IPHONE_6P || IS_IPHONE_7P{

            

            btn.titleEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 40)

            btn.imageEdgeInsets = UIEdgeInsetsMake(5,UIScreen.main.bounds.width / 2 - 60, 5, -(UIScreen.main.bounds.width / 2 - 150))

            

            

        }

        

        

        

        btn.layer.masksToBounds = true

        btn.layer.cornerRadius = 5

        btn.layer.borderColor = borderColor.cgColor

        btn.layer.borderWidth = 1

        btn.titleLabel?.font = UIFont.systemFont(ofSize: textFont)

        btn.titleLabel?.textAlignment = textAlignment

        if btn.isEnabled == true {

            

            btn.backgroundColor = UIColor.white

        }else {

            btn.backgroundColor = UIColor.white

    }

        

        btn.addTarget(self, action: target, for: .touchUpInside)

        

        scorllView!.addSubview(btn)

        return btn

    }

    

    

    func textfield(frame:CGRect,text:String,textFont:CGFloat,textColor:UIColor,textAlignment:NSTextAlignment,placeholder:String,borderStyle:UITextBorderStyle,borderColor : UIColor) -> UITextField {

        

        let textfield = UITextField.init(frame: frame)

        

        textfield.font = UIFont.systemFont(ofSize: textFont)

        textfield.textColor = textColor

        textfield.textAlignment = textAlignment

        textfield.placeholder = placeholder

        textfield.delegate = self

        textfield.borderStyle = borderStyle

        textfield.clearButtonMode = UITextFieldViewMode.whileEditing //叉号一直显示

        textfield.adjustsFontSizeToFitWidth = true

        textfield.backgroundColor = UIColor.white

        textfield.keyboardType = UIKeyboardType.default

        textfield.layer.masksToBounds = true

        textfield.layer.cornerRadius = 5

        textfield.layer.borderColor = borderColor.cgColor

        textfield.layer.borderWidth = 1

        scorllView!.addSubview(textfield)

        return textfield

    }

    

    func textFieldView(frame:CGRect,text:String,textFont:CGFloat,textColor:UIColor,textAlignment:NSTextAlignment,placeholder:String,borderColor : UIColor) -> WTextVIew {

        

        let textFieldView = WTextVIew.init(frame: frame)

        textFieldView.font = UIFont.systemFont(ofSize: textFont)

        textFieldView.textColor = textColor

        textFieldView.textAlignment = textAlignment

        textFieldView.delegate = self

        textFieldView.text = text

        textFieldView.layer.masksToBounds = true

        textFieldView.layer.cornerRadius = 5

        textFieldView.layer.borderWidth = 1

        textFieldView.layer.borderColor = borderColor.cgColor

        textFieldView.backgroundColor = UIColor.white

        textFieldView.placeholder = placeholder

        scorllView!.addSubview(textFieldView)

        return textFieldView

    }


相关文章:

Google是如何做Code Review的?| CSDN原力计划

作者 | 帅昕 xindoo 编辑 | 屠敏出品 | CSDN 博客我和几个小伙伴一起翻译了Google前一段时间放出来的Google’s Engineering Practices documentation(https://github.com/google/eng-practices),翻译后的GitHub仓库:https://gith…

从FFmpeg 4. 2源码中提取dshow mjpeg code步骤

之前在https://blog.csdn.net/fengbingchun/article/details/103735560 中介绍过在Windows上通过vs2017编译FFmpeg源码进行单步调试的步骤,为了进一步熟悉FFmpeg这里以提取FFmpeg dshow mjpeg源码为例介绍其实现过程及注意事项: FFmpeg是用C实现的&…

ControlButton按钮事件

#ifndef __HControlButton_H__#define __HControlButton_H__#include "cocos2d.h"#include "cocos-ext.h"USING_NS_CC;USING_NS_CC_EXT; //用于标识当前按钮的状态typedef enum{ touch_begin, touch_down, touch_up,}tagForTouch;class HControlB…

swift3.0UIAlertController使用方法

let alertVC : UIAlertController UIAlertController.init(title: "添加照片", message: "", preferredStyle: .actionSheet) let cleanAction UIAlertAction(title: "取消", style: UIAlertActionStyle.cancel,handler:nil) let photoActi…

Doxygen使用介绍

Doxygen的主页为http://doxygen.nl/,它的license为GPL,最新发布版本为1.8.17,源代码存放在https://github.com/doxygen/doxygen,它支持的语言包括C、C、Objective-C、C#、Java、Python等,它支持的系统平台包括Winodws、…

云计算软件生态圈:摸到一把大牌

作者 | 老姜编辑 | 阿秃出品 | CSDN云计算(ID:CSDNcloud)“我觉得我摸着了一把大牌。”软件领域的新锐企业——有赞公司创始人兼CEO白鸦在转向SaaS领域的一个细分市场时,曾对天使投资人这样说。而老牌软件企业金蝶创始人徐少春在2…

iOS封装HTTPS双向和单向验证

1.HttpsUtil (1) 对双向和单向验证的封装 #import <Foundation/Foundation.h> #import "AFNetworking.h" interface HttpsUtil : NSObject // 双向认证 (void)configHTTPSessionManager:(AFHTTPSessionManager *)manager serverCers:(NSArray *) serverCerNam…

开源库BearSSL介绍及使用

BearSSL是用C语言实现的SSL/TLS协议&#xff0c;它的源码可直接通过git clone https://www.bearssl.org/git/BearSSL 下载&#xff0c;它的license是MIT&#xff0c;最新版本为0.6。 BearSSL的主要特性是&#xff1a; (1). 正确且安全&#xff1a;对不安全的协议版本和算法选…

个推CTO安森:我所理解的数据中台

作者 | 个推CTO安森来源 | 个推技术学院&#xff08;ID:ID: getuitech&#xff09;引言在前面两篇文章&#xff08;《数据智能时代来临&#xff1a;本质及技术体系要求》和《多维度分析系统的选型方法》&#xff09;之中&#xff0c;我们概括性地阐述了对于数据智能的理解&…

玩弹珠手游-杂想

前言 为什么会写这个杂想呢&#xff1f; 因为最近这一个月来&#xff0c;我有点太沉迷怪物弹珠这个游戏了&#xff0c;每天下班回来的时间和上下班路途都在玩这个游戏&#xff0c;占据了我大部分的业余时间&#xff0c;也该是时候放一放玩游戏了。 为什么会玩这个游戏呢&#x…

OC封装时间选择器

#import <UIKit/UIKit.h> protocol TimeDatePickerViewDelegate <NSObject> //必须实现的两个协议 required - (void)changeTime : (NSDate *)date;//当时改变时出发 - (void)daterMine : (NSDate *)date;//更确定时间 end interface TimeDatePickerView :UIView /…

银行卡大小的充电宝,买就送耳机!

每个人的朋友圈和微博上似乎都有那么几个活得让人羡慕的朋友他们的生活看起来不仅精致&#xff0c;还很丰富多彩从早上第一刻就开始了↓出门旅游新一天的穿搭逆天朋友团咖啡馆到书店逼格十足的日料夜景太迷人忍不住发个小视频最后一定不要错过傍晚的夕阳&#xff0c;真的好上镜…

C++中插件使用举例

插件并不是在构建时链接的&#xff0c;而是在运行时发现并加载的。因此&#xff0c;用户可以利用你定义好的插件API来编写自己的插件。这样他们就能以指定方式扩展API的功能。插件库是一个动态库&#xff0c;它可以独立于核心API编译&#xff0c;在运行时根据需要显示加载。不过…

C和C++安全编码笔记:指针诡计

指针诡计(pointer subterfuge)是通过修改指针值来利用程序漏洞的方法的统称。 可以通过覆盖函数指针将程序的控制权转移到攻击者提供的外壳代码(shellcode)。当程序通过函数指针执行一个函数调用时&#xff0c;攻击者提供的代码将会取代原本希望执行的代码而得到执行。 对象指…

runLoop和runtime的分析

一.RunLoop: Runloop是事件接收和分发机制的一个实现。 Runloop提供了一种异步执行代码的机制&#xff0c;不能并行执行任务。 在主队列中&#xff0c;Main RunLoop直接配合任务的执行&#xff0c;负责处理UI事件、定时器以及其他内核相关事件。 (1).RunLoop的主要目的&#…

脑出血遇到深度学习,是否可以无所遁形?

近期大家对身体健康这个话题格外关注&#xff0c;而我们今天公开课的主题也恰巧与此不谋而合。我国脑卒的发病率已经超过心血管疾病&#xff0c;成为致死、致残率最高的疾病&#xff0c;并且发病率呈逐年上升的趋势&#xff0c;此外脑血管病和颅内肿瘤等脑部疾病也危害人们的健…

Cloudera Manager 5.3 和 CDH5.3.0 本地(离线)

为什么80%的码农都做不了架构师&#xff1f;>>> 声明一下&#xff1a;http://my.oschina.net/dataRunner/blog/369129 是本人所写&#xff0c;并非抄袭。 有部分内容来自 http://www.wangyongkui.com/hadoop-cdh5/ 这个文件是根据官网操作&#xff0c;翻译的不…

万字长文详解如何用Python玩转OpenGL | CSDN 博文精选

作者 | 天元浪子来源 | CSDN博文精选【编者按】OpenGL&#xff08;开放式图形库&#xff09;&#xff0c;用于渲染 2D、3D 矢量图形的跨语言、跨平台的应用程序编程接口&#xff0c;C、C、Python、Java等语言都能支持 OpenGL。本文作者以 Python 语法为例&#xff0c;用两万字详…

模仿视频抓帧实现

路口或某些场所可能并不会把从摄像头获取到的视频全部存储下来或对所有的视频帧进行处理&#xff0c;即摄像设备是一直处于打开状态&#xff0c;可能会根据需要间隔性的抓取其中一帧&#xff0c;或当某事件触发时才会抓取当前的一帧数据进行处理。这里使用两个线程来模仿此场景…

iOS--MD5加密封装

#import <Foundation/Foundation.h> interface MD5 : NSObject /** * md5加密 * * param inPutText 需要加密的字符串 * * return 加密好的字符串 */ (NSString *)md5:(NSString *)inPutText; end #import "MD5.h" #import "CommonCrypto/CommonDiges…

Akka路由_RoundRobinRoutingLogic

2019独角兽企业重金招聘Python工程师标准>>> Akka路由_RoundRobinRoutingLogic 使用Round Robin算法的Router&#xff0c;代码中有注释&#xff0c;基本和上篇文章中的代码一样 http://my.oschina.net/xinxingegeya/blog/369721&#xff0c; 具体如下&#xff0c;关…

iOS ---网络请求封装(自动缓存与手动缓存)

#import <Foundation/Foundation.h> interface WNetworkCache : NSObject /** * 手动写入/更新缓存 * * param jsonResponse 要写入的数据 * param URL 请求URL * * return 是否写入成功 */ (BOOL)saveJsonResponseToCacheFile:(id)jsonResponse andURL:(NSStrin…

Windows下获取视频设备的一种改进实现

之前在https://blog.csdn.net/fengbingchun/article/details/102806822中介绍过在Windows下获取视频设备列表的方法。其实那种实现方法是有缺陷的&#xff0c;当PC机上连接多个视频设备&#xff0c;并且其中有设备处于启动运行状态时&#xff0c;再调用相关接口获取视频设备可能…

最新单步目标检测框架,引入双向网络,精度和速度均达到不错效果

作者 | Tiancai Wang等译者 | 路一直都在出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;one-stage的目标检测方法因其具有实时性强、检测精度高等特点&#xff0c;近年来受到广泛关注。目标检测包括分类和定位两个子任务&#xff0c;通常来说&#xff0c;one-stage目…

基于Sentinel的Redis3.2高可用方案

默认情况下&#xff0c;Redis node和sentinel的protected-mode都是yes&#xff0c;在搭建集群时&#xff0c;若想从远程连接redis集群&#xff0c;需要将redis.conf和sentinel.conf的protected-mode修改为no&#xff0c;若只修改redis node&#xff0c;从远程连接sentinel后&am…

从YARN迁移到k8s,滴滴机器学习平台二次开发是这样做的

整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;【导读】人工智能时代&#xff0c;机器学习已经渗透进每个领域&#xff0c;改变了这些领域的业务模式、技术架构以及方法论。随着深度学习技术近年来快速发展&#xff0c;高效、易用的机器学习平台对于互联…

最新 macOS Sierra 10.12.3 安装CocoaPods及使用详解

cocoapods官网&#xff1a;https://guides.cocoapods.org 一、什么是CocoaPods 每种语言发展到一个阶段&#xff0c;就会出现相应的依赖管理工具&#xff0c;例如 Java 语言的 Maven&#xff0c;nodejs 的 npm。随着 iOS 开发者的增多&#xff0c;业界也出现了为 iOS 程序提供…

libusb中的热插拔使用举例

以下为判断usb设备是插入还是拔出状态(热插拔)的测试代码&#xff1a; 在Windows下是不支持的&#xff0c;在Linux是支持的&#xff0c;下一个版本可能会支持Windows下的热插拔&#xff1a; #include <chrono> #include <thread> #include <iostream> #incl…

C++复制控制:拷贝构造函数

一、拷贝构造函数是一种特殊构造函数&#xff0c;具有单个形参&#xff0c;该形参&#xff08;常用const修饰&#xff09;是对该类类型的引用。与默认构造函数一样 &#xff0c;拷贝构造函数可由编译器隐式调用。拷贝构造函数应用的场合为&#xff1a; &#xff08;1&#xff0…