Hello fellas,
Here this post comes with some basic iphone UI controls demo. It will illustrate how to deal with
UILable
UITextField
UITextView
UIImageView
UIButton
UISteper
UISlider
UISwitch
so let's start
1. Open Xcode create new project
Xcode ->>File->>New->>New Project
create new View Controller name it as BasicControlsVC
Xcode will automatically create
.AppDelegate.h
.AppDelegate.m
.BasicControlsVC.h
BasiccontrolsVC.m
2.Open BasicControls.h and declare your controls (see below)
#import <UIKit/UIKit.h>
@interface BasicControlsVC : UIViewController<UITextFieldDelegate,UITextViewDelegate>
{
UIButton *button;
UILabel *lable;
UITextView *textview;
UITextField *textfield;
UISlider *slider;
UISwitch *switchControls;
UIStepper *stepper;
UIImageView *imageview;
}
@end
3.Now Time to create these controls and performing action.
Generally creating controls refers to allocating memory and setting it's property ,so let's do that
open BasicControlsVC.m and modify your init method as shown below
- (id)init
{
self = [super init];
if (self) {
//allocate controls here..
//create lable
lable=[[UILabel alloc]init];
[lable setFrame:CGRectMake(50, 50, 100, 30)];
lable.text=@"This is label";
lable.textColor=[UIColor grayColor];
//create Image view
imageview=[[UIImageView alloc]initWithFrame:CGRectMake(170, 50, 100, 80)];
imageview.image=[UIImage imageNamed:@"lamborghini.png"];
//create Textfield
textfield=[[UITextField alloc]initWithFrame:CGRectMake(50, 100, 200, 50)];
[textfield setPlaceholder:@"this is text field"];
textfield.delegate=self;
//create Textview
textview=[[UITextView alloc]initWithFrame:CGRectMake(50, 160, 200, 50)];
[textview setText:@"This is text view"];
textview.delegate=self;
//create button
button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(aMethod)
forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Button" forState:UIControlStateNormal];
[button setTintColor:[UIColor grayColor]];
[button setTag:1];
button.frame = CGRectMake(50, 220, 70, 30);
//create slider
slider = [[UISlider alloc] initWithFrame:CGRectMake(50, 300, 200, 10)];
[slider addTarget:self action:@selector(sliderAction) forControlEvents:UIControlEventValueChanged];
[slider setBackgroundColor:[UIColor clearColor]];
slider.minimumValue = 0.0;
slider.maximumValue = 50.0;
slider.continuous = YES;
slider.value = 20.0;
//create switch control
switchControls = [[UISwitch alloc] initWithFrame:CGRectMake(50, 320, 20, 20)];
[switchControls addTarget: self action: @selector(switchmethod) forControlEvents: UIControlEventValueChanged];
//create Stepper
stepper = [[UIStepper alloc]init];
[stepper setFrame:CGRectMake(50, 350, 155, 25)];
[stepper setMinimumValue:0];
stepper.maximumValue = 1000;
stepper.stepValue = 5;
stepper.wraps = YES;
stepper.autorepeat = YES;
stepper.continuous = YES;
[stepper addTarget:self action:@selector(someAction:) forControlEvents:UIControlEventValueChanged];
}
return self;
}
Above code snippet will create these controls and set their property
Add your controls on BasicControlsVC by modifying your loadView method as shown below
-(void)loadView
{
[super loadView];
//add view to this view controller
[self.view addSubview:lable];
[self.view addSubview:textfield];
[self.view addSubview:textview];
[self.view addSubview:button];
[self.view addSubview:imageview];
[self.view addSubview:slider];
[self.view addSubview:switchControls];
[self.view addSubview:stepper];
}
3. addTarget:self action:@selector
you can add selector method on contols eg. UIButton to perform an action when button clicks
[button addTarget:self
action:@selector(aMethod)
forControlEvents:UIControlEventTouchUpInside];
and ofcourse you have to implement this aMethod
-(void)aMethod
{
NSLog(@"button clicked");
lable.text=@"button clicked";
}
like wise here i implemented respective @selector method for UISwitch,UIStepper,UISlider
-(void)sliderAction
{
NSLog(@"value changed");
lable.text=@"value changed";
}
-(void)switchmethod
{
if(switchControls.on)
{
NSLog(@"ON");
lable.text=@"ON";
}else
{
NSLog(@"OFF");
lable.text=@"OFF";
}
}
- (void) someAction:(UIStepper *) stepper {
NSLog(@"stepper clicked");
lable.text = [NSString stringWithFormat:@"%.f", stepper.value];
}
4. Implement UITextFieldDelegate and UITextViewDelegate Method
As you know when you are dealing with TextField or TextView in iPhone , Keyboard automatically appears and by clicking return button it hides.
To achieve this must implement these two method
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
5. Now Build and run your Project you'll get something like that
full source code of this BasicUIControlsDemo you can grab from
here http://www.4shared.com/zip/KeHWh86P/BasicUIControlsDemo.html
feel free to query @: bpsingh216@gmail.com
enjoy coding :-)