当前位置: 首页 > news >正文

iOS端授权页添加自定义按钮

如何添加自定义控件

基于一键登录的拉起授权页面功能,如果想要在我们的授权页面中添加自定义组件,例如使用其他方式登录的按钮,来实现其他方式登录功能,为用户呈现更多选择登录的方式。本文介绍如何在一键登录授权界面中实现添加自定义控件功能,实现方式如下:

//自定义授权页面
-(void)setupAuthPageCustomStyle:(UIViewController *)authVC userInfo:(SVSDKHyProtocolUserInfo *)userInfo
{//授权页viewUIView * authPageView = authVC.view;//中间可以对原有授权页上的按钮文字等作自定义操作```//***添加自定义控件****// 自定义返回按钮UIButton *customBackButton = [UIButton buttonWithType:UIButtonTypeCustom];[customBackButton setImage:[UIImage imageNamed:@"fh"] forState:UIControlStateNormal];[customBackButton setTitle:@"返回" forState:UIControlStateNormal];[customBackButton setTitleColor:[UIColor colorWithRed:35/255.0 green:35/255.0 blue:38/255.0 alpha:1/1.0] forState:UIControlStateNormal];customBackButton.titleLabel.font = [UIFont fontWithName:@"PingFangSC-Regular" size:18];[customBackButton addTarget:self.target action:@selector(customBackAction:) forControlEvents:UIControlEventTouchUpInside];[authPageView addSubview:customBackButton];UIView *bottomView = [[UIView alloc] init];[authPageView addSubview:bottomView];UILabel *mLbl = [[UILabel alloc] init];mLbl.textAlignment = NSTextAlignmentCenter;mLbl.font = [UIFont fontWithName:@"PingFangSC-Regular" size:13];mLbl.textColor = [UIColor colorWithRed:184/255.0 green:184/255.0 blue:188/255.0 alpha:1/1.0];mLbl.text = @"其他方式登录";[mLbl sizeToFit];[bottomView addSubview:mLbl];UIButton *wxBtn = [[UIButton alloc] init];[wxBtn setBackgroundImage:[UIImage imageNamed:@"wc"] forState:UIControlStateNormal];[wxBtn addTarget:self.target action:@selector(weixinLoginAction:) forControlEvents:UIControlEventTouchUpInside];[bottomView addSubview:wxBtn];UIButton *zhBtn = [[UIButton alloc] init];[zhBtn setBackgroundImage:[UIImage imageNamed:@"zh"] forState:UIControlStateNormal];[zhBtn addTarget:self.target action:@selector(usernameLoginAction:) forControlEvents:UIControlEventTouchUpInside];[bottomView addSubview:zhBtn];//布局(可以进行竖屏和横屏的布局):自定义控件和授权页基本控件可以放一起统一布局即可```//自定义控件布局(这里使用的是第三方布局控件Masonry)[customBackButton mas_remakeConstraints:^(MASConstraintMaker *make) {make.width.height.mas_equalTo(50);make.left.mas_equalTo(15);make.top.mas_equalTo(15);}];// bottomView[bottomView mas_remakeConstraints:^(MASConstraintMaker *make) {make.bottom.mas_equalTo(privacyTextView.mas_top);make.centerX.mas_equalTo(0);make.width.mas_equalTo(SVD_ScreenWidth);make.height.mas_equalTo(70+mLbl.bounds.size.height);}];[mLbl mas_remakeConstraints:^(MASConstraintMaker *make) {make.bottom.mas_equalTo(wxBtn.mas_top).offset(-10);make.centerX.mas_equalTo(0);}];[wxBtn mas_remakeConstraints:^(MASConstraintMaker *make) {make.bottom.mas_equalTo(-10);make.centerX.mas_equalTo(-50);make.width.height.mas_equalTo(48);}];[zhBtn mas_remakeConstraints:^(MASConstraintMaker *make) {make.top.equalTo(wxBtn);make.centerX.mas_equalTo(50);make.width.height.mas_equalTo(48);}];}

相关文章:

  • android 是Application类先运行还是AndroidManifest.xml中action先运行?Application类先运行
  • 计算机公共课面试常见问题:线性代数篇
  • 计算机视觉 | 基于图像处理和边缘检测算法的黄豆计数实验
  • TS_开发一个项目
  • 【51单片机】串口通信(发送与接收)
  • uniapp中实现瀑布流 短视频页面展示
  • python3递归目录删除N天前的文件(带有日志记录)
  • RabbitMQ中java实现队列和交换机的声明
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • 大数据面试题之HBase(1)
  • LabVIEW遇到无法控制国外设备时怎么办
  • 学生管理系统
  • Langchain-实战篇-搭建本地问答机器人-01
  • Linux下QT程序启动失败问题排查方法
  • 生产环境 CentOS 7 k8s v1.28.0离线部署
  • 【剑指offer】让抽象问题具体化
  • 3.7、@ResponseBody 和 @RestController
  • ES6语法详解(一)
  • jquery ajax学习笔记
  • Lucene解析 - 基本概念
  • mysql常用命令汇总
  • Swift 中的尾递归和蹦床
  • text-decoration与color属性
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 动态规划入门(以爬楼梯为例)
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​学习一下,什么是预包装食品?​
  • # 飞书APP集成平台-数字化落地
  • (7)STL算法之交换赋值
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (libusb) usb口自动刷新
  • (pytorch进阶之路)扩散概率模型
  • (Qt) 默认QtWidget应用包含什么?
  • (笔记)M1使用hombrew安装qemu
  • (初研) Sentence-embedding fine-tune notebook
  • (分布式缓存)Redis哨兵
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (十)c52学习之旅-定时器实验
  • (五)网络优化与超参数选择--九五小庞
  • (原)本想说脏话,奈何已放下
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • .bat批处理出现中文乱码的情况
  • .form文件_SSM框架文件上传篇
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • :“Failed to access IIS metabase”解决方法
  • @angular/cli项目构建--Dynamic.Form
  • @KafkaListener注解详解(一)| 常用参数详解
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [c]扫雷
  • [C++]:for循环for(int num : nums)