控件都是继承UIControl控件
1.Lable控件
2.Button控件
点击按钮
3.TextFiled文本框
//
创建一个
TextFiled
UITextField
*textFiled = [[
UITextField
alloc
]
initWithFrame
:
CGRectMake
(
100
,
50
,
200
,
40
)];
//
设置输入框的边距样式
textFiled.
borderStyle
=
UITextBorderStyleRoundedRect
;
//
设置输入框的字体
textFiled.
font
= [
UIFont
boldSystemFontOfSize
:
16
];
//
设置输入文字的颜色
textFiled.
textColor
= [
UIColor
grayColor
];
//
设置或者获取文本框的内容
// textFiled.text = @"
你好
";
//
设置对齐方式
textFiled.
textAlignment
=
NSTextAlignmentCenter
;
//
设置字母是否自动大写
textFiled.
autocapitalizationType
=
UITextAutocapitalizationTypeWords
;
//
设置单词提示
// textFiled.autocorrectionType = UITextAutocorrectionTypeNo;
//
输入框为空时提示文本
textFiled.
placeholder
=
@"
请输入用户名
"
;
//
修改键盘上的
return
按钮标题
textFiled.
returnKeyType
=
UIReturnKeyGo
;
//
设置是否安全输入
textFiled.
secureTextEntry
=
YES
;
//
纯数字键盘
// textFiled.keyboardType = UIKeyboardTypeNumberPad;
//
开启清除按钮
textFiled.
clearButtonMode
=
UITextFieldViewModeWhileEditing
;
//
成为第一个响应者,弹出键盘
[textFiled
becomeFirstResponder
];
//
失去第一个响应者
// [textFiled resignFirstResponder];
//
设置代理
textFiled.
delegate
=
self
;
代理协议中的办法
//
将要开始编辑
- (
BOOL
)textFieldShouldBeginEditing:(
UITextField
*)textField
{
NSLog
(
@"
将要开始编辑
"
);
return
YES
;
}
//
已经开始编辑
- (
void
)textFieldDidBeginEditing:(
UITextField
*)textField
{
NSLog
(
@"
已经开始编辑
"
);
}
//
将要结束编辑
- (
BOOL
)textFieldShouldEndEditing:(
UITextField
*)textField
{
NSLog
(
@"
将要结束编辑
"
);
return
YES
;
}
//
已经结束编辑
- (
void
)textFieldDidEndEditing:(
UITextField
*)textField;
{
NSLog
(
@"
已经结束编辑
"
);
}
//
输入框内容被修改的时候调用协议方法
-----
重要
- (
BOOL
)textField:(
UITextField
*)textField shouldChangeCharactersInRange:(
NSRange
)range replacementString:(
NSString
*)string
{
NSString
*lastStr = textField.
text
;
NSString
*rangeStr =
NSStringFromRange
(range);
NSString
*replaceStr = string;
NSLog
(
@"lastStr is %@"
, lastStr);
NSLog
(
@"rangeStr is %@"
, rangeStr);
NSLog
(
@"replaceStr is %@"
, replaceStr);
return
YES
;
}
4.ImageView
//
创建图像
UIImage
*image = [
UIImage
imageNamed
:
@"scene1.jpg"
];
//
设置
Image
图片
UIImageView
*imageView = [[
UIImageView
alloc
]
initWithFrame
:
CGRectMake
(
100
,
100
,
200
,
200
)];
imageView.
image
= image;
//
设置高亮状态下的图片
imageView.
highlightedImage
= [
UIImage
imageNamed
:
@"scence3.jpg"
];
imageView.
highlighted
=
YES
;
//
设置内容模式
//
横向和纵向都拉伸到边框
imageView.
contentMode
=
UIViewContentModeScaleToFill
;
//
等比例拉伸,当某一方向拉伸到达时,则不拉伸
imageView.
contentMode
=
UIViewContentModeScaleAspectFit
;
//
等比例拉伸,当某一方向到达时,则继续拉伸到另一方向也到头
imageView.
contentMode
=
UIViewContentModeScaleAspectFill
;
//imageView
设置动画图片组
//
先创建一个数组装入图片
UIImage
*image1 = [
UIImage
imageNamed
:
@"scene1.jpg"
];
UIImage
*image2 = [
UIImage
imageNamed
:
@"scene2.jpg"
];
UIImage
*image3 = [
UIImage
imageNamed
:
@"scene3.jpg"
];
UIImage
*image4 = [
UIImage
imageNamed
:
@"scene4.jpg"
];
UIImage
*image5 = [
UIImage
imageNamed
:
@"scene5.jpg"
];
NSArray
*imArr =
@[
image1, image2, image3, image4, image5
]
;
//
设置动画的播放集合
imageView.
animationImages
= imArr;
//
设置动画播放的时间
imageView.
animationDuration
=
5
;
//
开始动画
[imageView
startAnimating
];
[
self
.
window
addSubview
:imageView];
//
注意:
imageView
的触摸事件是关闭的
UIButton
*bnt = [
UIButton
buttonWithType
:
UIButtonTypeContactAdd
];
bnt.
frame
=
CGRectMake
(
150
,
150
,
40
,
40
);
[bnt
addTarget
:
self
action
:
@selector
(bntClick)
forControlEvents
:
UIControlEventTouchUpInside
];
[
self
.
window
addSubview
:bnt];
userInteractionEnabled = YES;
5.UIslider 滑块
//UISlider
滑块的高度是固定的
UISlider
*slider = [[
UISlider
alloc
]
initWithFrame
:
CGRectMake
(
50
,
200
,
300
,
100
)];
//
设置滑动的最大值和最小值
slider.
maximumValue
=
100
;
slider.
minimumValue
=
0
;
//
设置初始值
slider.
value
=
50
;
//
设置滑动条左边
|
右边的颜色
// [slider setMaximumTrackTintColor:[UIColor redColor]];
// [slider setMinimumTrackTintColor:[UIColor blueColor]];
//
设置滚动条的左右边的图片
UIImage
*image1 = [
UIImage
imageNamed
:
@"com_slider_max_l-Decoded.png"
];
UIImage
*image2 = [
UIImage
imageNamed
:
@"com_slider_max_r-Decoded.png"
];
//
设置图片的拉伸点
// image1 = [image1 stretchableImageWithLeftCapWidth:5 topCapHeight:0];
// image2 = [image2 stretchableImageWithLeftCapWidth:4 topCapHeight:0];
image1 = [image1
resizableImageWithCapInsets
:
UIEdgeInsetsMake
(
0
,
5
,
0
,
5
)];
image2 = [image2
resizableImageWithCapInsets
:
UIEdgeInsetsMake
(
0
,
5
,
0
,
5
)];
[slider
setMinimumTrackImage
:image1
forState
:
UIControlStateNormal
];
[slider
setMaximumTrackImage
:image2
forState
:
UIControlStateNormal
];
//
设置滑块的图片
UIImage
*image = [
UIImage
imageNamed
:
@"com_thumb_max_n-Decoded"
];
[slider
setThumbImage
:image
forState
:
UIControlStateNormal
];
UIImage
*image0 = [
UIImage
imageNamed
:
@"com_thumb_max_h-Decoded"
];
setThumbImage:image0 forState:UIControlStateHighlighted];
//
添加事件
[slider
addTarget
:
self
action
:
@selector
(sliderAction:)
forControlEvents
:
UIControlEventValueChanged
];
self.window addSubview:slider];
6.开关
UISwitch
*switchUI = [[
UISwitch
alloc
]
initWithFrame
:
CGRectMake
(
50
,
100
,
100
,
100
)];
[
self
.
window
addSubview
:switchUI];
//
默认开
switchUI.
on
=
YES
;
//
添加事件
[switchUI
addTarget
:
self
action
:
@selector
(switchAction:)
forControlEvents
:
UIControlEventValueChanged
];
}
- (
void
)switchAction:(
UISwitch
*)switchU
{
if
(switchU.
on
) {
NSLog
(
@"
开启
"
);
}
else
{
NSLog
(
@"
关闭
"
);
}
}
7.风火轮
- (
void
)_initUIActivityIndicatorView
{
//
初始化风火轮,并将其状态改成白色大的
UIActivityIndicatorView
*activityView = [[
UIActivityIndicatorView
alloc
]
initWithActivityIndicatorStyle
:
UIActivityIndicatorViewStyleGray
];
//
改变风火轮的坐标
长宽都可以为
0
,如果不为
0
,则会改变坐标,因为默认居中
activityView.
frame
=
CGRectMake
(
100
,
100
,
0
,
0
);
//
开始转动
[activityView
startAnimating
];
//
停止转动
自动隐藏
// [activityView stopAnimating];
self.window addSubview:activityView];
8.页面加载器
//
页面加载器
- (
void
)_initUIPageControl
{
//
初始化页面加载器
UIPageControl
*pageCon = [[
UIPageControl
alloc
]
initWithFrame
:
CGRectMake
(
200
,
200
,
100
,
20
)];
//
设置背景颜色
pageCon.
backgroundColor
= [
UIColor
grayColor
];
//
设置总的页数
pageCon.
numberOfPages
=
5
;
//
设置当前页数
下标
点击左边,或右边,白点会动
pageCon.
currentPage
=
2
;
//
添加点击事件
[pageCon
addTarget
:
self
action
:
@selector
(pageConClick:)
forControlEvents
:
UIControlEventValueChanged
];
[
self
.
window
addSubview
:pageCon];
}
- (
void
)pageConClick:(
UIPageControl
*)pageCon
{
//
打印出当前的页数
NSLog
(
@"%ld"
, pageCon.
currentPage
);
}
9.进度条
//
进度条
- (
void
)_initUIProgressView
{
//
初始化进度条,继承的是
UIView
UIProgressView
*progressView = [[
UIProgressView
alloc
]
initWithProgressViewStyle
:
UIProgressViewStyleDefault
];
//
高度可以设成
0
背景颜色也无效
progressView.
frame
=
CGRectMake
(
100
,
300
,
200
,
0
);
//
设置进度值
范围是
0~1
progressView.
progress
=
0
;
//
设置已经加载的进度条的颜色
progressView.
progressTintColor
= [
UIColor
redColor
];
//
设置未加载的进度条的颜色
progressView.
trackTintColor
= [
UIColor
blueColor
];
[
self
.
window
addSubview
:progressView];
//
让进度条走动
[
NSTimer
scheduledTimerWithTimeInterval
:
0.2
target
:
self
selector
:
@selector
(progressViewAction:)
userInfo
:progressView
repeats
:
YES
];
}
- (
void
)progressViewAction:(
NSTimer
*)timer
{
// UIProgressView *progerssView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
UIProgressView
*progerssView = timer.
userInfo
;
progerssView.
progress
+=
0.1
;
if
(progerssView.
progress
>=
1
) {
[timer
invalidate
];
NSLog
(
@"OK!"
);
}
}
10.提示框AlertView
//
定义一个提示框
UIAlertView
*alertView = [[
UIAlertView
alloc
]
initWithTitle
:
@"
警告
"
message
:
@"
这是提示框
"
delegate
:
self
cancelButtonTitle
:
@"
取消
"
otherButtonTitles
:
@"
确定
"
,
nil
];
//
设置
alterView
样式
alterViewStyle
//
默认带两个输入框的
// alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
//
默认带一个输入框的
// alertView.alertViewStyle = UIAlertViewStylePlainTextInput;
//
默认带一个密码输入框
// alertView.alertViewStyle = UIAlertViewStyleSecureTextInput;
//
默认
// alertView.alertViewStyle = UIAlertViewStyleDefault;
// [alertView show];
// UIAlertController
代替了
AlertView
和
ActionSheet
//
类方法创建
UIAlertController
*alterControl = [
UIAlertController
alertControllerWithTitle
:
@"
警告
"
message
:
@"
这是提示栏
"
preferredStyle
:
UIAlertControllerStyleAlert
];
//
添加一个文本框
注意:只有
AlertControllertStyleAlert
才能添加文本框
[alterControl
addTextFieldWithConfigurationHandler
:^(
UITextField
*textField) {
//
设置文本框的内容
添加一些属性
textField.
secureTextEntry
=
YES
;
//
安全输入
textField.
textAlignment
=
NSTextAlignmentCenter
;
//
对齐方式
textField.
placeholder
=
@"
请输入密码
"
;
//
提示内容
textField.
keyboardType
=
UIKeyboardTypeNumberPad
;
//
只让输入数字
}];
//
创建
action
取消按钮
UIAlertAction
*cancelAction = [
UIAlertAction
actionWithTitle
:
@"
取消
"
style
:
UIAlertActionStyleCancel
handler
:^(
UIAlertAction
*action) {
NSLog
(
@"
取消
"
);
}];
//
再创建一个
action
确定按钮
UIAlertAction
*enterAction = [
UIAlertAction
actionWithTitle
:
@"
确定
"
style
:
UIAlertActionStyleDestructive
handler
:^(
UIAlertAction
*action) {
NSLog
(
@"
确定
"
);
}];
//
添加
action
[alterControl
addAction
:cancelAction];
[alterControl
addAction
:enterAction];
//
弹出一个模态视图(因为是
control
,不是视图,所以不能
show
)
[
self
presentViewController
:alterControl
animated
:
YES
completion
:
nil
];
11.提示框
Sheet
//
从下边出来的提示框
// UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"
提示
"
// delegate:self
// cancelButtonTitle:@"
取消
"
// destructiveButtonTitle:@"
确定
" otherButtonTitles:@"
按钮
1", nil];
// [actionSheet showInView:actionSheet];
//
用
UIAlertController
替换后的
UIActionSheet
UIAlertController
*alterSheet = [
UIAlertController
alertControllerWithTitle
:
@"
提示
"
message
:
@"
这是提示框
"
preferredStyle
:
UIAlertControllerStyleActionSheet
];
//
取消按钮
UIAlertAction
*cancelAction = [
UIAlertAction
actionWithTitle
:
@"
取消
"
style
:
UIAlertActionStyleCancel
handler
:^(
UIAlertAction
*action) {
NSLog
(
@"
取消
"
);}];
//
确定按钮
UIAlertAction
*enterAction = [
UIAlertAction
actionWithTitle
:
@"
确定
"
style
:
UIAlertActionStyleDestructive
handler
:^(
UIAlertAction
*action) {
NSLog
(
@"
确定
"
);
}];
//
其他按钮
UIAlertAction
*otherActon = [
UIAlertAction
actionWithTitle
:
@"
其他
"
style
:
UIAlertActionStyleDefault
handler
:^(
UIAlertAction
*action) {
NSLog
(
@"
其他
"
);
}];
[alterSheet
addAction
:cancelAction];
[alterSheet
addAction
:enterAction];
[alterSheet
addAction
:otherActon];
//
弹出一个模态视图
self presentViewController:alterSheet animated:YES completion:nil];
//用以前的方式可以调用此方法
- (
void
)actionSheet:(
UIActionSheet
*)actionSheet clickedButtonAtIndex:(
NSInteger
)buttonIndex
{
//
下标顺序是从上到下一次增加的
NSLog
(
@"%ld"
, buttonIndex);
}
12、分段控件
//
分段控件
- (
void
)_initSementControl
{
//
设置按钮标题数组
NSArray
*arr = [
NSArray
arrayWithObjects
:
@"
选择
"
,
@"
工具
"
,
@"
帮助
"
,
nil
];
//
创建分段控件
UISegmentedControl
*segmentedCon = [[
UISegmentedControl
alloc
]
initWithItems
:arr];
segmentedCon.
frame
=
CGRectMake
(
100
,
250
,
200
,
50
);
//
设置样式
segmentedCon.
segmentedControlStyle
=
UISegmentedControlStyleBar
;
//
默认选中的按钮
segmentedCon.
selectedSegmentIndex
=
0
;
//
点击触发事件
addTarget:self action:@selector(segmentedAction:) forControlEvents:
UIControlEventValueChanged
];
[
self
.
view
addSubview
:segmentedCon];
}
- (
void
)segmentedAction:(
UISegmentedControl
*)segmentedCon
{
NSLog
(
@"
当前的页数
,%ld"
, segmentedCon.
selectedSegmentIndex
);
}