[IOS] 经常被忽视的 UITextField 的属性

React Native UI Toolkit选型实战:SafeArea与渲染契约深度解析 React Native UI Toolkit并非简单组件集合,而是JS声明与Native渲染之间确定性映射的工程实现。其核心在于对SafeAreaProvider语义、无障碍继承链、平台差异化渲染(如iOS UITextField vs Android AppCompatEditText)等底层渲染契约的理解深度。真正影响跨平台一致性的,不是组件数量,而是Toolkit能否在Android 14 WindowInsets变更、折叠屏动态安全区、键盘事件生命周期等场景下保持渲染可预测性。技术价值体现在减少3 阅读详情

这几天又看了下《iOS 7 UI Transition Guide 》,然后发现用系统 UITextField 做的一个输入框,

不知道你注意系统中高德地图导航的UI没。。。然后就是故事的开始 ~  T_T ~

UITextField的输入框内文字是两部分组成的,左边是默认的提示文字,右边是

用户输入的部分,而且 UITextField 的响应部分是在 “:” 之后,第一反应是,用图片

做背景图,然后右边的文字部分填空格,或者调解输入的文字的显示位置,殊不知

属性里有个 leftView,同时也有 rightView, 而且还可以指定其显示模式--leftViewMode

贴个代码吧:

    UILabel *leftLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 45, 21)];
    leftLabel.backgroundColor = [UIColor clearColor];
    leftLabel.textColor = [UIColor lightGrayColor];
    leftLabel.text = @"Start:";
    
    UITextField *xTextField = [[UITextField alloc] initWithFrame:CGRectMake(50, 100, 150, 31)];
    xTextField.borderStyle = UITextBorderStyleRoundedRect;
    xTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    xTextField.leftView = lbl;
    xTextField.leftViewMode = UITextFieldViewModeAlways;
    xTextField.adjustsFontSizeToFitWidth = YES;


另外UITextField 还有一个强大的属性就是 adjustsFontSizeToFitWidth 根据内容的

大小自动调整大小,真是吊咋天 ~~ 

然后就会见到一个 NSAttributedString     *attributedText 这个属性,经常见到,又不详情

知其用法,在图文混排等经常见会到用类似的设置字体、字体颜色、阴影等,好强大的样子

在Text Kit tutorial 里偷的代码



然后对这种用字典的形式做处理的属性,都有哪些 key 呀

找到一些 常用的 key 以供大家参考

NSString *const UITextAttributeFont,设置title的文字字体;
NSString *const UITextAttributeTextColor,设置title的文字颜色;
NSString *const UITextAttributeTextShadowColor,设置titlewz的阴影颜色;
NSString *const UITextAttributeTextShadowOffset,设置titlewz阴影的平移量 ;
这么点怎么够用呢,然后根据偷的代码中的 NSForegroundColorAttributeName 属性,终于

找到源头了,哈哈哈 ,~~~~~   基本都在UIKit 框架下 NSAttributedString.h 头文件中声明了,早应该发现呀,






避开地图定位偏差!手把手教你用Python实现火星坐标与WGS84精准转换 本文深入解析了国内地图服务中火星坐标(GCJ-02)与国际标准WGS84坐标系之间的偏差问题,并提供了基于Python的精准转换解决方案。文章详细阐述了坐标转换的核心原理,手把手教你构建可复用的转换工具包,并演示如何将其集成到实际应用(如Flask API)中,帮助开发者和数据分析师有效解决地图定位不准、多源数据无法对齐的痛点,提升地理信息处理能力。 阅读详情

相关推荐

STM32F103C8T6+A4988驱动42步进电机全流程(附接线图+代码解析)

本文详细介绍了使用STM32F103C8T6单片机与A4988驱动模块控制42步进电机的完整流程。内容涵盖硬件接线图解析、电流设置、GPIO驱动代码编写以及细分控制等核心实践,旨在帮助嵌入式开发者和DIY爱好者快速实现精准运动控制,适用于3D打印机、CNC等需要精密定位的项目。

Python的专栏 792

IOS学习-UITextField

#《iOS 8开发指南》,自己总结用 UITextField 文本框(UITextField)是一种常见的信息输入机制,类似于Web表单中的表单字段。 文本框基础 常用属性 (1) boderStyle属性:设置输入框的边框线样式 (2) backgroundColor属性:设置输入框的背景颜色,使用其font属性设置字体。 (3) clearButtonMode属性:设置一个清空按钮,通过设置c...

AdrianAndroid的专栏 709

ADRV9009学习资料保存:基于XC7Z100+ADRV9009的双收双发无线电射频板卡

ADRV9009学习资料保存:基于XC7Z100+ADRV9009的双收双发无线电射频板卡 一、板卡概述 基于XC7Z100+ADRV9009的双收双发无线电射频板卡是基于XilinxZYNQFPGA和ADI的无线收发芯片ADRV9009开发的专用功能板卡,用于5G小基站,无线图传,数据收发...

9353

ios基础篇(三)—— UITextField、UITextView

0.enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的。 1.borderStyle 设置边框样式,只有设置了才会显示边框样式  text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITe...

努力进阶的小菜鸟 1991

GPT-5.5 是真好用!SCI论文润色与学术写作能力上全面提升,全流程指令已整理好!

输出规范:先输出完整的摘要正文,不添加额外说明,以Markdown表格形式提供中文自检说明,表格包含两列,列标题为“检查项”和“说明”,逐项说明是否已覆盖背景、研究问题、方法、结果及贡献,并简要评价摘要结构与表达是否符合要求,除上述内容外不输出其他信息。:你是一位(学术写作专家/期刊审稿人/论文评审专家),精通学术写作规范、逻辑结构、语法准确性及学术表达方式,你的任务是帮助提升论文的质量,包括语言润色、语法检查、逻辑优化和降低重复率。语言需简洁、正式、具有概括性,不展开具体论述,仅提供结构与要点说明。

智能AI让学术科研更容易 289

基于Simulink的PR(比例谐振)控制器在单相整流中的应用

本文详细介绍了基于Simulink的单相整流系统中PR(比例谐振)控制器的设计与实现方法。首先阐述了PR控制器相较于传统PI控制器的优势,能够有效消除交流信号跟踪中的稳态误差。接着系统讲解了PR控制器的传递函数原理、实用型设计(带带宽)及参数整定方法。通过Simulink建模步骤,包括主功率电路搭建、电压外环PI设计、电流指令生成、PR控制器实现(推荐MATLAB Function方法)和SPWM调制等关键环节。仿真对比显示PR控制在电流跟踪精度(THD仅1.9%)、功率因数(0.998)和动态响应(突变恢

amy_mhd的博客 689

iOS UITextField的使用详解

//初始化textfield并设置位置及大小 UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(50, 250, 200, 50)]; /* typedef enum { UITextBorderStyleNone, UITextBorderStyleLine

RangingWon的博客 737

Python时间序列:PaddleTS-时间序列分类

评估的指标采用F1,Precision,Recall,PaddleTS已经基于TSDataset实现了这三个指标的计算,直接调用即可。使用内置的API:get_dataset加载BasicMotions数据集。模型训练完成之后,可以对测试集进行预测并评估。模型保存之后,可以加载模型用于新的数据预测。可以将训练完成的模型保存到指定路径。概率预测 可以返回每个分类的概率。安装paddlets。

斌擎科技 1292

iOS开发篇——UITextField

官方UITextField @interface UITextField : UIControl @property(nonatomic,copy) NSString *text; // 文本 default is nil @property(nonatomic,copy) NSAttributedSt

为者常成,行者常至 1513

ABAP Cloud 里的高性能日志:CL_BALI_LOG、XCO_CP_BAL 与 AML 的性能对比与选型指南

ABAP日志框架性能对比与选型建议 本文对比了ABAP Cloud中三种主流日志框架的性能表现与适用场景: 标准BALI:适合明确需要保存日志的场景,保存路径短,性能较好 XCO_CP_BAL:API更现代但性能较低,适合需要即时可见性的场景 AML:开源框架,擅长消息缓冲,适合批量处理时暂存消息 测试结果表明: 纯记录不落库时AML最快 需要保存时BALI性能最优 second connection不提升性能但能确保日志留存 选型建议: 高频批处理优先AML+BALI组合 故障诊断考虑XCO的即时可见性

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 214

C/C++李峋同款跳动的爱心代码(完整代码)

C++语言实现出李峋同款跳动的爱心的完整代码。

AIGC 10万+

iOS开发总结之UITextField常用属性和方法

UITextField属性 0.        enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的。 1.borderStyle 设置边框样式,只有设置了才会显示边框样式    text.borderStyle =UITextBorderStyleRoundedRect;  typ

Walden_tinghou的专栏 8707

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

(iOS)项目总结-项目中遇到的各种的问题和解决方法

前言: 一到公司报道那时,便着手独立的去完成了一个项目,其中的辛酸泪也是不足为外人道也。这次算是一个新型的app,仍然是独立开发,但心境和想法却是完全的不同。下面说一次以前做开发时常常忽略的知识,也算是一种复习了吧。下面言归正传: 1、自带键盘的next用法 这算是比较常用的了吧,只要我们想到登录和注册界面,就应该自然而然的想到 - 键盘的next用法(当然不排除相...

aoiz62081的博客 897

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

那些 iOS 7 中容易被忽视的新特性总结

转载自:  http://mobile.51cto.com/hot-435208.htm  14.使用NSAttributedString显示HTML 在app中使用Webviews有时会让人非常沮丧,即使只是显示少量的HTMLneirong ,Webviews也会消耗大量的内容。现在iOS7让这些变得简单了,你可以从用少量代码在HTML文件中创建一个NSAttributedS

沸腾的泪水的专栏 468

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

iOS开发小技巧(一)

分享一下容易忽视的一些小技巧 1.让tableView不显示空的单元格: self.tableView.tableFooterView = [UIView alloc] init]; 2.自定义了leftBarbuttonItem左滑返回手势失效了怎么办? self.navigationItem.leftBarButtonItem=[[UIBarButtonItemalloc] ...

weixin_30488085的博客 85

UITextFiled select改成中文

碰见一个很弱智 但是经常注意不到的问题  在UITextField中,输入文字,长按,会出现提示,有select / select All 两个选项,按理来说应该使用中文提示, 显示 选择/全选。 但是平常编程基本注意不到,这些细节问题,今天翻出来看,搜了半天,终于发现了解决方法: http://www.cocoachina.com/ask/questions/show/

freely随意 792

iOS placeholder换行

于是我试了好几种奇奇怪怪,反理论的都试了,都失败了。textarea 里设了placeholder,UI要求换行显示,于是奇怪的问题发生了,他不换行…我看了好多文章叫我用插件然后这么写,但那是个jq插件,现在也不咋用jq。在实际开发中input 里面很少用到需要换行,input 就只有一行而已,多行的话就会使用textarea标签。原因我想是因为placeholder里传的值是text,标签当然会被当成abcd的文本啦。可能对于好多人来说,这是个基础问题,有时候基础问题会容易被我忽视。...

weixin_42627305的博客 1232

iOS安全最佳实践:保护你的应用与用户数据的终极指南

在当今移动应用开发中,iOS安全最佳实践是确保应用和用户数据安全的关键。随着iOS设备承载越来越多的个人和敏感信息,开发者必须优先考虑安全因素,从数据存储到网络通信,全面构建安全防线。本指南将详细介绍iOS开发中的核心安全措施,帮助你打造更安全可靠的应用。 ## 数据存储安全:保护敏感信息的第一道防线 iOS应用经常需要存储各种数据,从用户凭证到个人偏好设置。处理这些数据时,安全存储是首要考虑

gitblog_00599的博客 362

BlocksKit错误处理终极指南:如何优雅处理Block执行中的异常情况

BlocksKit是一个强大的Objective-C扩展库,专门为简化Block编程而生。在iOS和macOS开发中,BlocksKit错误处理机制能够帮助开发者优雅地处理Block执行过程中可能出现的各种异常情况,让代码更加健壮和安全。 ## 🔍 为什么BlocksKit错误处理如此重要? 在传统的Objective-C开发中,Block执行过程中的错误处理往往被忽视,这可能导致应用崩溃或

gitblog_00124的博客 396

UITextField设置

【代码】UITextField设置。

MOON_YZM的博客 819

UITextField 知识整理

UITextField

FanBaoShen的博客 502

iOS UITextField 清空按钮的mode clearButtonMode属性的四个值

UITextField清空内容按钮

wang6177的专栏 1473

UITextField 详解

//初始化textfield并设置位置及大小   UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)];   //设置边框样式,只有设置了才会显示边框样式    text.borderStyle = UITextBorderStyleRoundedRect;

xiezhenxiang的专栏 1080

iOS UITextField控件

UITextField在界面中显示可编辑文本区域的对象。 1. 基本属性 属性 说明 text 设置文本 attributedText 设置富文本 textColor 设置文本的颜色 font 设置文本的字体 textAlignment 设置文本的对齐方式 placeholder 设置占位文本,默认颜色是灰色 attributedPlaceholder 设置富文本占位文本 secureTextEntry 设置编辑框中的内容密码显示,默认是NO clearsOn

假装你是大灰狼的专栏 1061

特别实用而且功能强大的attributedText属性

#import "ViewController.h" #import <CoreText/CoreText.h>@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //设置字体 UIButton *btn=[[UIButton a

凉城旧梦的博客 5253

iOS 开发中怎么让UITextField 的placeHolder 文字自适应宽度。

在项目中我们很多情况下需要让文字自适应宽度,如果文字过多,则适当缩小文字font。比如UIlabel 使用adjustsFontSizeToFitWidth设置为YES来让文字自适应,UITextField也是通过adjustsFontSizeToFitWidth来设置文字自适应,不过要想让这个属性生效,还需要设置 [surePwdTextView.myTextField setMinimumFo...

iOSTerry的博客 2656
上一篇: [Git] 获取指定的历史版本代码
下一篇: [IOS]你用过原生的 UIRefreshControl 吗?
skyming
博客等级 码龄15年 249粉丝 175原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值