Enum (enumerated type) is an user-defined type that is used in Objective-C to represent the data that can be stored in one of several predefined values (all of them are int).
Let’s imagine you have to implement a simple UIView that has three different visual modes: default (grey), green and red. Each mode is represented to user by three different pictures: my_mode_grey.png, my_mode_green.png and my_mode_red.png. All of three final views would have some common behavior.
To understand it , lets take an example:
1) First create an enum
enum myMode {
myViewModeDefault, //== 0(by default)
myViewModeGreen, // == 1 (incremented by one from previous)
myViewModeBlue // ==2
};
It means that every “mode” is simply described by the unique int value (unique inside current enum). Each next enum mode is incremented by 1 by default. You can also set the enum mode values by yourself (if you really need it):
enum myMode {
myViewModeDefault = 5, //== 5 (redefined)
myViewModeGreen, // == 6 (incremented by one from previous)
myViewModeBlue = 9 // ==2
};
2) Now lets create a class:
#import <UIKit/UIKit.h>
@interface MyViews:UIView{
enum myMode mode ;
}
-(id)initWithMode:(enum myMode)amode;
@end
3) implement our custom initializer:
@implementation MyViews
-(id)initWithMode:(enum myMode)amode{
self = [super init];
if(self){
mode = amode;
//to store different images
NSString *imageName;
switch(amode){
case myViewModeDefault:
imageName = @"tom.png"
break;
case myViewModeDefault:
imageName = @"jery.png"
break;
case myViewModeDefault:
imageName = @"draculla.png"
break;
default:
imageName = @"sorry.png"
break;
}
UIImageView *imageView = [UIImageView alloc]initWithImage:[UIImage imageNamed: imageName]];
[self addSubview:imageView];
}
return self;
}
@end
Thats it, how easy it is.
No comments:
Post a Comment