总结:
文本类控件:
UILabel,UITextField,UITextView
按钮类控件:
UIButton,UISwitch,UISegmentControl
调节类控件:
UISlider,UIStepper
选择,警告类控件:
UIDatePick, UIPickView, UIAlertView
容器类控件:
UIImageView, UIScrollView
指示类控件:
UIPageControl, UIProgressView,UIAcitcityIndicator
控件使用步骤:
a 初始化控件,设置位置,.........
b 加载到视图,
c 释放
View属性:
文本类控件
UILabel 标签:显示文本
eg: baselineAdjustment 设置基线位置(只有1行文本时才有效)
numberOfLines 设置显示行数(0表示不限)
lineBreakMode 设置超出内容宽度时的模式
UITextField:用于文本的输入,支持单行
eg
:
//回收键盘:设置<UITextFieldDelegate>
-(
BOOL
)textFieldShouldReturn:(
UITextField
*)textField
{
[textField
resignFirstResponder
];
//
撤销第一响应
return
YES
;
}
UITextView:用于文本的输入,支持多行
eg:
// 回收键盘:加按钮键盘来辅助
- (
IBAction
)button:(
UIButton
*)sender
{
[
self
.
textView
resignFirstResponder
];
//
撤销第一响应
}
按钮类控件
UIButton 按钮:
一般情况下 UIButton是不用实例化的, 通过UIButton类提供的工厂方法来获得实例, 工厂方法返回的实例是Autorelease类型的,不需要释放内容。
eg:
// addTarget 设置点击按钮
[button
addTarget
:对象
action
:
@selector
(实例方法)
forControlEvents
:
UIControllerEventTouchUpInside
];
UISwitch 开关控件:
eg:
高度默认自身的
调节类控件:UISlider,UIStepper
UISlider 滚动条:
eg:
高度默认自身的
选择,警告类控件:UIDatePick, UIPickView, UIAlertView
UIDatePicker 日期选择器:
eg:
//获取UIDatePicker里的日期
NSDate
*date =
self
.
dataPicker
.
date
;
//创建时间格式
NSDateFormatter
*formatter = [[
NSDateFormatter
alloc
]
init
];
[formatter
setDateFormat
:
@"yyyy-MM-dd hh-mm-ss"
];
NSString
*selectDate = [formatter
stringFromDate
:date];
self
.
label
.
text
= selectDate;
UIPickerView自身不存储数据的,它的数据存储在它的委托中
<UIPickerViewDataSource>
:
eg: 高度默认自身
eg:
//
设置UIPickerView的列数
-(
NSInteger
)numberOfComponentsInPickerView:(
UIPickerView
*)pickerView
{
return
整数
;
}
//设置每列的行数
-(
NSInteger
)pickerView:(
UIPickerView
*)pickerView numberOfRowsInComponent:(
NSInteger
)component
{
if(component == 0) //第一列
{
return 3;
}
return 5 //第二例
}
<UIPickerViewDelegate>设置数据
eg
: //
设置行的内容
-(
NSString
*)pickerView:(
UIPickerView
*)pickerView titleForRow:(
NSInteger
)row forComponent:(
NSInteger
)component
{
return 内容;
}
//
设置选中内容到
label
-(
void
)pickerView:(
UIPickerView
*)pickerView didSelectRow:(
NSInteger
)row inComponent:(
NSInteger
)component
{
self.myLayer.text = 内容;
}
UIActionSheet操作表
警告:alertView:
eg:
- (
IBAction
)alertClick:(
id
)sender
{
UIAlertView
*alert = [[
UIAlertView
alloc
]
initWithTitle
:
@"YES"
message
:
@"Are you sure ?"
delegate
:
self
cancelButtonTitle
:
@"NO"
otherButtonTitles
:
@"test1"
,
nil
];
[alert
show
];
//将UIAlertView显示出来
}
//delegate
设置点击后的调用
-(
void
)alertView:(
UIAlertView
*)alertView clickedButtonAtIndex:(
NSInteger
)buttonIndex
{
NSLog
(
@"%d"
,buttonIndex);
//结果从上到下为1~n,最后一个为0
}
从底部弹出
ActionSheet
组件:
eg:
- (
IBAction
)actionClick:(
id
)sender
{
UIActionSheet
*sheet = [[
UIActionSheet
alloc
]
initWithTitle
:
@"
确认购买
"
delegate:
self
cancelButtonTitle
:
@"
取消购买
"
destructiveButtonTitle
:
@"
销毁
"
otherButtonTitles:
@"test11"
,
nil
];
[sheet
showInView
:
self
.
view
];
//
显示
}
//delegate
设置点击后的调用
-(
void
)actionSheet:(
UIActionSheet
*)actionSheet clickedButtonAtIndex:(
NSInteger
)buttonIndex
{
NSLog
(
@"%d"
,buttonIndex); //结果从上到下为0~n
}
容器类控件:UIImageView,UIScrollView
UIImageView视图载体和UIImage加载视图:
a: UIImage是真实中的图片源。
b: UIImageView是UIImage的载体,负责显示UIImage而且设置其大小和模式。
eg:
.contentMode用来设置图片显示内容模式
.animationImages设置要播放的图片数组
.animationDuration设置周期时间
.animationRepeatCount播放次数
UIScrollView:
常用属性:
//
设置
UIScrollView
的滚动范围(内容大小)
scrollView.
contentSize =
CGSizeMake
(
int
,
int
);
//
隐藏水平滚动条
scrollView.
showsHorizontalScrollIndicator
=
NO
; scrollView.
showsVerticalScrollIndicator
=
NO
;
//
用来记录
scrollview
滚动的位置
scrollView.contentOffset
//
去掉弹簧效果
scrollView.bounces = NO;
//
增加额外的滚动区域
scrollView.
contentInset
=
UIEdgeInsetsMake
(top,left,bottom,right);
a: scrollView的缩放问题
当用户尝试缩放UIScrollView的时候,scrollerView会尝试向它的delegate(代理对象)发送一条消息,询问要缩放哪一个子控件,scrollView会尝试调用delegate的某个方法,询问要缩放哪一个子控件,并且该方法的返回值就是要缩放的子控件 。
步骤:
1 控制器遵守UIScrollViewDelegate协议<UIScrollViewDelegate>
2 设置scrollView的delegate为控制器(self)
3 设置最大和最小缩放比例
//
设置最大伸缩比例
scrollView.
maximumZoomScale
=
2.0
;
//
设置最小伸缩比例
scrollView.
minimumZoomScale
=
0.2
;
4 控制器实现
的方法
-(
UIView
*)viewForZoomingInScrollView:(
UIScrollView
*)scrollView
{
return 图片的大小;
}
b:scrollView的循环滚动问题:多加载虚假的前后两张图片
eg:
-(
void
)scrollViewDidScroll:(
UIScrollView
*)scrollView {
int
page = scrollView.
contentOffset
.
x
/ scrollView.
frame
.
size
.
width
;
_pageControl
.
currentPage
= page;
//
设置页码
} -(
void
)scrollViewDidEndDecelerating:(
UIScrollView
*)scrollView
{
int
currentPage = (
_scrollView
.
contentOffset
.
x
/scrollView.
frame
.
size
.
width
);
if
(currentPage==
0
)
{
//
如果是第一页
,
也就是接下来要开始从最后一页循环
[
_scrollView
setContentOffset
:
CGPointMake
(
w
*
kCount
,
0
)
animated
:
NO
]; }
else
if
(currentPage==
kCount
)
{
//
如果是最后
+1,
也就是接下来要开始从第一页循环
[
_scrollView
setContentOffset
:
CGPointMake
(
320
,
0
)
animated
:
NO
]; } }
指示类控件:UIPageControl, UIProgressView,UIAcitcityIndicator
UIPageControl:
常用属性:
eg:pageControl.
numberOfPages
=
数量
;
//
一共显示多少个圆点(多少页)
pageControl.
pageIndicatorTintColor
= [
UIColor
red
Color
];
//
设置非选中页的圆点颜色
pageControl.
currentPageIndicatorTintColor
= [
UIColor
blueColor
];
//
设置选中页的圆点颜色
pageControl.
enabled
=
NO
;
//
禁止默认的点击功能
pageControl
.
currentPage
= page;//
设置页码
UIProgressView 进度条控件
eg: 高度默认自身的
UIActivity Indicator 活动指示器,无限菊花
//
订阅按钮升起的系统通知
[[
NSNotificationCenter
defaultCenter
]
addObserver
:
self
selector
:
@selector
(keyboardWillShow)
name
:
UIKeyboardWillShowNotification
object
:
nil
];
-(
void
)keyboardWillShow
{
[
UIView
animateWithDuration
:
0.25
animations
:^
{
_button
.
frame
=
CGRectMake
(
10
,
220
,
300
,
30
); //升起的位置
//一般情况下可以把整个视图都升起
}
completion
:^(
BOOL
finished)
{
}];
}
ios16按钮样式不兼容
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
下一篇:统信 openstack
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章