自定义uistepper中间有文本输入框

#import "MyReserveViewController.h"

@interface MyReserveViewController ()<UITextFieldDelegate>{
UITextField * _myfield;
UIButton * addButn;
UIButton * deleteButn;
}

@end

@implementation MyReserveViewController

- (void)viewDidLoad {
[super viewDidLoad];

[self creatStepView];
[self creatButton];
// Do any additional setup after loading the view.
}
#pragma mark - 创建计数器
-(void)creatStepView{
_myfield = [[UITextField alloc]initWithFrame:CGRectMake(100, 100, 100, 30)];
[email protected]"1";
//_myfield.backgroundColor=[UIColor blueColor];
_myfield.delegate=self;
_myfield.textAlignment=NSTextAlignmentCenter;
_myfield.layer.borderColor=[[UIColor redColor]CGColor];
_myfield.layer.borderWidth=1.0f;
_myfield.keyboardType=UIKeyboardTypeNumberPad;
[self.view addSubview:_myfield];

}
-(void)creatButton{
addButn = [UIButton buttonWithType:UIButtonTypeCustom];
addButn.frame = CGRectMake(0, 0, 30, _myfield.frame.size.height);
[addButn setImage:[UIImage imageNamed:@"111.png"] forState:UIControlStateNormal];

[addButn addTarget:self action:@selector(addAction:) forControlEvents:UIControlEventTouchUpInside];

deleteButn = [UIButton buttonWithType:UIButtonTypeCustom];
deleteButn.frame = CGRectMake(0, 0, 30, _myfield.frame.size.height);
[deleteButn setImage:[UIImage imageNamed:@"222.png"] forState:UIControlStateNormal];

[deleteButn addTarget:self action:@selector(deleteAction:) forControlEvents:UIControlEventTouchUpInside];
_myfield.leftView=deleteButn;
_myfield.rightView=addButn;
_myfield.leftViewMode=UITextFieldViewModeAlways;
_myfield.rightViewMode=UITextFieldViewModeAlways;

}
-(void)addAction:(UIButton *)sender{
NSString * changeStr = _myfield.text;
NSInteger minimumNum = 1;
NSInteger maxNum = 10;
if ([changeStr integerValue] > 0 || [changeStr integerValue] < maxNum) {
_myfield.text = [NSString stringWithFormat:@"%ld",[changeStr integerValue]+1];

if ([_myfield.text integerValue] == maxNum) {
addButn.enabled = NO;
}
if ([_myfield.text integerValue] > minimumNum) {
deleteButn.enabled = YES;
}
}

}
-(void)deleteAction:(UIButton *)sender{
NSString * changeStr = _myfield.text;
NSInteger minimumNum = 1;
NSInteger maxNum = 10;
if ([changeStr integerValue] > 0 || [changeStr integerValue] < maxNum) {

_myfield.text = [NSString stringWithFormat:@"%ld",[changeStr integerValue]-1];

if ([_myfield.text integerValue] == minimumNum) {
deleteButn.enabled = NO;
}
if ([_myfield.text integerValue] < maxNum) {
addButn.enabled = YES;
}
}
}

- (void)textFieldDidEndEditing:(UITextField *)textField{
NSLog(@"%@",textField.text);
if ([textField.text integerValue] >= 10) {
addButn.enabled = NO;
}else{
addButn.enabled = YES;
}
if ([textField.text integerValue]<= 1) {
deleteButn.enabled = NO;
}else{
deleteButn.enabled = YES;
}if ([textField.text integerValue] > 10) {
_myfield.text = @"10";
}
}
//对键盘输入的操作
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
if ([string isEqualToString:@"\n"])
{
return YES;
}
NSString * toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string]; //得到输入框的内容
if (_myfield == textField) //
{
if ([toBeString integerValue] > 10) { //如果输入框内容大于10则弹出警告
UIAlertController * alertController = [UIAlertController alertControllerWithTitle:@"提示" message:@"输入的数值不能超过10" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
}];
UIAlertAction *otherAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
}];
[alertController addAction:cancelAction];
[alertController addAction:otherAction];
[self presentViewController:alertController animated:YES completion:nil];
return NO;
}

}
return YES;
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];
// [self.TF resignFirstResponder];
}

//显示边框需要导入#import <QuartzCore/QuartzCore.h>

时间: 2024-10-28 21:19:47

自定义uistepper中间有文本输入框的相关文章

iOS自定义键盘和系统键盘切换且文本输入框一直获得焦点

UITextView用来进行文本输入.方法becomeFirstResponder和resignFirstResponder可以用来进行弹出系统键盘和收下系统键盘. 弹出系统键盘,文本输入框获得焦点.收下系统键盘,文本输入框失去焦点.那么,问题来了. 某个条件下,如点击界面上的某个按钮,展示自定义键盘.再次点击,切换到系统键盘.先收下系统键盘,再展示自定义键盘.比如移动自定义键盘View的Frame.Y.但这时因为收下系统键盘,本文输入框失去焦点.虽然展示了自定义键盘.但用户体验很不好.光标没有

Ext文本输入框:Ext.form.TextField属性汇总(转) (

本章介绍Ext.form.TextField组件的基本用法: <form id="form1" runat="server">    <div>    <div id="Bind_TextField"></div>    <br />    <div id="Bind_Button"></div>    <script type=&quo

安卓自定义带删除图标的输入框EditView

在安卓中我们使用默认的Editview是只能输入文字的,但是想要删除,我们得利用输入法的删除按钮来一个个删除,现在在好多应用当中,会在输入框的最后出现一个删除图片,点击就清空了所有的数据,这个很方便.下面我们来实现一下. 先看下效果图: 我们这里实现的是,当输入框有文本是,才会出现这个删除图标.当输入为空是,就会消失,其实就是自定义一个Ediiview: /** * 输入文本框 右边有自带的删除按钮 当有输入时,显示删除按钮,当无输入时,不显示删除按钮. * * */ public class

Android自定义进度条-带文本(文字进度)的水平进度条(ProgressBar)

/** * 带文本提示的进度条 */ public class TextProgressBar extends ProgressBar { private String text; private Paint mPaint; public TextProgressBar(Context context) { super(context); initText(); } public TextProgressBar(Context context, AttributeSet attrs, int d

java界面编程(2) ------ 按钮,文本输入框和文本区域

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 上节创建了视窗,这是其他组件的容器,这节就来创建按钮. 创建按钮,只需要在希望出现的地方调用JButton的构造器即可. JButton是一个组件,它有自己的小窗口,能作为整个更新过程的一部分而自动被重绘.也就是说,你不必显示绘制一个按钮或者别的类型的控件,只要将其放在窗体上,它们可以自动绘制自己.采用上节的例子,在其基础上修改如下: public class SwingTes

类似微信的文本输入框

本文内容比较简单,给大家介绍一下微信的文本输入框是如何实现的,其实那只是个普通的文本框设了一个特殊的背景而已.具体微信怎么实现的,大家可以反编译下,这里介绍下如何实现这个背景. 可以先看下文章末尾的效果图,里面的文本框是不是和微信的比较像啊,下面说下实现思想: 首先,这种效果用.9图我不知道是否可以做出来.如果不用.9图的话,那就只能用drawable来写,这种drawable有点复杂,可以采用LayerList来实现,我的思想如下: 分三层实现,这里假设activity的背景是白色,第一层也(

手机中点击一个链接或文本输入框出现一个半透明的背景的问题

刚开始接触移动端的开发,发现input元素在iPhone中获得焦点时会出现一个半透明的背景,如图: 要去掉这个半透明背景需要设置以下样式 -webkit-tap-highlight-color:rgba(0,0,0,0); tap-highlight-color:rgba(0,0,0,0); 补充下网上的资料说明: 当你点击一个链接或输入框元素时,就会出现一个半透明的灰色背景. tap点击,highlight背景高亮,color颜色,颜色用数值调节 手机中点击一个链接或文本输入框出现一个半透明的

IPhone手机页面中点击文本输入框,弹出键盘,网页会放大,如何解决

在head标签中加入以上meta声明.具体属性可以谷歌/百度. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 我查了下viewport,有几个属性:width - viewport的宽度 height - viewport的高度initial-scale - 初始的缩放比例minim

Text input(文本输入框)

Text input(文本输入框)是用来获得用户输入的绝佳方式. 你可以用如下方法创建: <input type="text"> 注意,input元素是自关闭的.