关于IOS中用户界面及一些基本按钮相关代码实例,运行后,效果如下:
1、在AppDelegate.h文件中的相关代码:
#import <UIKit/UIKit.h>
@class ViewController;
@interface AppDelegate :UIResponder <UIApplicationDelegate>
@property (strong,nonatomic) UIWindow *window;
@property (strong,nonatomic) ViewController *viewController;
@end
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
- (void)dealloc
{
[_window release];
[_viewControllerrelease];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindowalloc] initWithFrame:[[UIScreenmainScreen] bounds]]autorelease];
self.viewController = [[[ViewControlleralloc] initWithNibName:@"ViewController"bundle:nil]autorelease];
self.window.rootViewController =self.viewController;
[self.windowmakeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
}
- (void)applicationWillTerminate:(UIApplication *)application
{
}
@end
#import <UIKit/UIKit.h>
@interface ViewController :UIViewController<UITextFieldDelegate,UIScrollViewDelegate>
{
NSTimer *pTimer;
}
//显示背景图
@property (retain,nonatomic) UIImageView *pImageView;
@property (retain,nonatomic) UILabel *pShowValueLabel;
@property (retain,nonatomic) UIProgressView *pProgress;
@property (retain,nonatomic) UILabel *pProgressValueLabel;
@property (assign,nonatomic) float progressValue;
@property (retain,nonatomic) UIActivityIndicatorView
*pActivity;
// 添加背景图
- (void)addImageView:(id)sender;
//添加标签
- (void)addLabel:(id)sender;
- (void)addTextField;
//控制控件
- (void)addButton;
- (void)addCheckboxButton;
- (void)addSlider;
- (void)addSegmentControl;
- (void)addSwitch;
//其它控件
- (void)addActivityIndicatorView;
- (void)addProgress;
@end
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[superviewDidLoad];
//调用添加ImageView的方法
[selfaddImageView:nil];
[selfaddImageView:nil];
[selfaddLabel:nil];
[selfaddTextField];
[selfaddButton];
[selfaddCheckboxButton];
[selfaddSwitch];
[selfaddSlider];
[selfaddSegmentControl];
[selfaddProgress];
[selfaddActivityIndicatorView];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[superdidReceiveMemoryWarning];
}
#pragma mark ------addImageView-------
- (void)addImageView:(id)sender
{
//创建一个临时ImageView
UIImageView *pTempImageView = [[UIImageViewalloc]
initWithImage:[UIImageimageNamed:@"psbe.png"]];
self.pImageView = pTempImageView;
[self.viewaddSubview:self.pImageView];
[pTempImageViewrelease];
}
#pragma mark ------addShowLabel------
- (void)addLabel:(id)sender
{
//创建一个label
UILabel *pLabel = [[UILabelalloc]initWithFrame:CGRectMake(10,10, 120, 50)];
//内容
pLabel.text =@"HelloWorld\nSecondLinr";
//设置字体和大小
pLabel.font = [UIFontfontWithName:@"Verdana"size:18];
//字体对齐方式
pLabel.textAlignment =NSTextAlignmentCenter;
//字体颜色
pLabel.textColor = [UIColorredColor];
//显示行数
pLabel.numberOfLines =2;
//阴影颜色
pLabel.shadowColor = [UIColorblackColor];
//阴影尺寸
pLabel.shadowOffset =CGSizeMake(2.0,1.0);
//设置label的背景色为透明色
pLabel.backgroundColor = [UIColorclearColor];
[self.viewaddSubview:pLabel];
[pLabelrelease];
}
- (void)addTextField
{
//创建TextField
UITextField *pTextField = [[UITextFieldalloc]initWithFrame:CGRectMake(10,116, 200, 31)];
//设置边框样式
pTextField.borderStyle =UITextBorderStyleRoundedRect;
//设置字体
pTextField.font = [UIFontsystemFontOfSize:18.0];
//根据宽度改变字体
pTextField.adjustsFontSizeToFitWidth =YES;
//最小字体
pTextField.m umFontSize =2.0;
//清除按钮的样式
pTextField.clearButtonMode =UITextFieldViewModeWhileEditing;
//弹出的健盘的式样
pTextField.keyboardType =UIKeyboardTypeDefault;
//设置使用自动更正功能
pTextField.autocorrectionType =UITextAutocorrectionTypeNo;
//设置健盘自动大小写的属性
pTextField.autocapitalizationType =UITextAutocapitalizationTypeNone;
//设置返回按钮类型
pTextField.returnKeyType =UIReturnKeyDone;
//设置是否支持密码文本显示
pTextField.secureTextEntry =YES;
//设置委托
pTextField.delegate =self;
[self.viewaddSubview:pTextField];
[pTextFieldrelease];
}
//控制控件
- (void)addButton
{
//创建一个按钮
UIButton *pBtn = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
//设置区域
[pBtnsetFrame:CGRectMake(10,70, 100, 40)];
[pBtn setTitle:@"Normal"forState:UIControlStateNormal];
[pBtn setTitle:@"HighLight"forState:UIControlStateHighlighted];
//允许显示高亮
pBtn.showsTouchWhenHighlighted =YES;
[pBtn addTarget:selfaction:@selector(buttonDown:)forControlEvents:UIControlEventTouchDown];
[pBtn addTarget:selfaction:@selector(buttonRelease:)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:pBtn];
}
#pragma mark-----------Button SEL-------
//按钮的响应方法
- (void)buttonDown:(id)sender
{
NSLog(@"Button pushed down");
}
- (void)buttonRelease:(id)sender
{
NSLog(@"Button released");
}
//选中框
- (void)addCheckboxButton
{
//创建一个自定义按钮
UIButton *pCheckboxButton = [UIButtonbuttonWithType:UIButtonTypeCustom];
//设置区域
CGRect checkboxRect =CGRectMake(10,155,36,36);
[pCheckboxButtonsetFrame:checkboxRect];
//分别为两种不同状态设置对应图片
[pCheckboxButtonsetImage:[UIImageimageNamed:@"checkbox_off.png"]forState:UIControlStateNormal];
[pCheckboxButtonsetImage:[UIImageimageNamed:@"checkbox_on.png"]forState:UIControlStateSelected];
//添加关联动作
[pCheckboxButtonaddTarget:selfaction:@selector(checkboxClick:)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:pCheckboxButton];
}
#pragma mark-----------checkBtn SEL-------------
- (void)checkboxClick:(UIButton *)btn
{
btn.selected = !btn.selected;
}
- (void)addSlider
{ //创建UISlider对象
UISlider *pSlider = [[UISlideralloc]initWithFrame:CGRectMake(10,195, 300, 20)];
//设置最小值
pSlider.minimumValue =0;
//最大值
pSlider.maximumValue =100;
//是否可以持续滑动
pSlider.continuous =YES;
//设置初始值
pSlider.value =50;
//透明度
self.pImageView.alpha = pSlider.value/100;
//最小值处的图片
pSlider.minimumValueImage = [UIImageimageNamed:@"apple_min"];
//最大值处的图片
pSlider.maximumValueImage = [UIImageimageNamed:@"apple_max.png"];
//设置当前的图片
[pSlider setThumbImage:[UIImageimageNamed:@"apple_thumb.png"]forState:UIControlStateNormal];
//添加对应动作,注意:CotrolEvents:valueChanged
[pSlider addTarget:selfaction:@selector(sliderValueChange:)forControlEvents:UIControlEventValueChanged];
[self.viewaddSubview:pSlider];
//创建显示当前值的label
self.pShowValueLabel = [[UILabelalloc]initWithFrame:CGRectMake(180,150, 86, 25)];
//设置背景色
self.pShowValueLabel.backgroundColor = [UIColorlightGrayColor];
//设置当前文本内容
self.pShowValueLabel.text = [NSStringstringWithFormat:@"亮度:%%%d",(int)pSlider.value];
[self.viewaddSubview:self.pShowValueLabel];
}
#pragma mark-----------Slider SEL-----------------
- (void)sliderValueChange:(UISlider *)slider
{
//显示当前亮度
self.pShowValueLabel.text = [NSStringstringWithFormat:@"亮度:%%%d",(int)slider.value];
//透明度
self.pImageView.alpha = slider.value/100;
}
//添加开关
- (void)addSwitch
{
UISwitch *pSwitch = [[UISwitchalloc]initWithFrame:CGRectMake(220,10, 10, 50)];
//pSwitch.backgroundColor = [UIColor redColor];
//给开关添加关联动作
[pSwitch addTarget:selfaction:@selector(switchMethod:)forControlEvents:UIControlEventValueChanged];
[self.viewaddSubview:pSwitch];
}
#pragma mark--------------Switch SEL------------------
- (void)switchMethod:(id)sender
{
//找到开关
UISwitch *pSwitch = (UISwitch *)sender;
if (pSwitch.isOn)//根据开关的状态设置背景图hidden
{
[self.pImageViewsetHidden:NO];
}
else
{
[self.pImageViewsetHidden:YES];
}
}
- (void)addSegmentControl
{ //创建数组
NSArray *pArr = [NSArrayarrayWithObjects:@"1",@"2",nil];
//根据数组对象初始化SegmentControl对象
UISegmentedControl *pSegment = [[UISegmentedControlalloc]initWithItems:pArr];
[pSegmentsetFrame:CGRectMake(10,240, 300, 40)];
//设置该分段控件的Style
[pSegment setSegmentedControlStyle:UISegmentedControlStyleBordered];
//设置分段控件选择的段数
[pSegment setSelectedSegmentIndex:0];
//添加关联动作
[pSegment addTarget:selfaction:@selector(segmentMethod:)forControlEvents:UIControlEventValueChanged];
[self.viewaddSubview:pSegment];
}
#pragma mark-----------------Segment SEL--------------------
- (void)segmentMethod:(UISegmentedControl *)segment
{
NSString *pMessage = [NSStringstringWithFormat:@"你选择了第%d段,该段宽度已调整",segment.selectedSegmentIndex];
for (int i =0; i < [segment numberOfSegments]; i++)
{ //根据你选择的分段的Index进行响应的操作
if (i == [segment selectedSegmentIndex])
{
[segmentsetWidth:180forSegmentAtIndex:i];
}
else
{
[segmentsetWidth:120forSegmentAtIndex:i];
}
}
//警告框
UIAlertView *pAlert = [[UIAlertViewalloc]initWithTitle:@"通知"message:pMessage delegate:nilcancelButtonTitle:@"确认"otherButtonTitles: nil];
[pAlertshow];
[pAlertrelease];
}
//其他控件
- (void)addActivityIndicatorView
{
//创建初始化ActivityIndicatorView(Style)
self.pActivity = [[UIActivityIndicatorViewalloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[self.pActivitysetFrame:CGRectMake(10,280, 45, 45)];
//设置是否隐藏
self.pActivity.hidden =NO;
[self.viewaddSubview:self.pActivity];
//创建按钮,关联对应方法
UIButton *pBtn = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
[pBtnsetFrame:CGRectMake(10,330, 45,30 )];
[pBtn setTitle:@"转"forState:UIControlStateNormal];
[pBtn addTarget:selfaction:@selector(doRotate:)forControlEvents:UIControlEventTouchUpInside];
pBtn.tag =110;
[self.viewaddSubview:pBtn];
}
- (void)doRotate:(id)sender
{
UIButton *pBtn = (UIButton *)sender;
[self.pActivityisAnimating]?[self.pActivitystopAnimating]:[self.pActivitystartAnimating];
//根据Activity是否运行来设置按钮的title
[pBtn setTitle:(self.pActivity.isAnimating?@"停":@"转")forState:UIControlStateNormal];
self.pActivity.hidden =NO;
}
- (void)addProgress
{ //创建进度条并初始化
self.pProgress = [[UIProgressViewalloc]initWithFrame:CGRectMake(10,360, 300, 30)];
//设置Style
self.pProgress.progressViewStyle = UIProgressViewStyleBar;
//分别设置进度条完成未完成的颜色
self.pProgress.trackTintColor = [UIColorredColor];
self.pProgress.progressTintColor = [UIColorgreenColor];
[self.viewaddSubview:self.pProgress];
//创建用来显示进度的label
self.pProgressValueLabel = [[UILabelalloc]initWithFrame:CGRectMake(100,370, 110, 30)];
self.pProgressValueLabel.backgroundColor = [UIColorclearColor];
self.pProgressValueLabel.text = [NSStringstringWithFormat:@"加载:%%%.1f",self.progressValue*100];
[self.viewaddSubview:self.pProgressValueLabel];
//通过计时器完成循环调用
pTimer = [NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@selector(progressMethod:)userInfo:nilrepeats:YES];
}
#pragma mark--------------NSTimer SEL----------------------
- (void)progressMethod:(id)sender
{
self.progressValue +=0.1;
self.pProgress.progress =self.progressValue;
self.pProgressValueLabel.text = [NSStringstringWithFormat:@"加载:%%%.1f",self.progressValue*100];
//[self.pActivity startAnimating];
if (self.progressValue >=1)
{
self.progressValue =0;
self.pProgressValueLabel.text =@"加载完成";
//[self.pActivity stopAnimating];
//self.pActivity.hidden = NO;
//停止计时器
[pTimerinvalidate];
}
}
#pragma mark-----UITextFieldDelegate------
//弹回键盘方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
//放当前的textField放弃第一响应者
[textField resignFirstResponder];
return YES;
}
//限制输入字符串长度
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
int MAX_LENGTH = 10;
NSMutableString *pNewString = [NSMutableStringstringWithString:textField.text];
//完成range内字符串的替换
[pNewString replaceCharactersInRange:rangewithString:string];
//根据两个的长度判断,返回YES or NO.
return ([pNewString length] <= MAX_LENGTH);
}
- (void)dealloc
{
[_pActivity release];
[_pShowValueLabelrelease];
[superdealloc];
}
@end