Color Picker for iOS

Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
- (void)viewDidLoad
{
    [super viewDidLoad];
   
    // Do any additional setup after loading the view, typically from a nib.
   
    if (self.cPicker == nil) {
        [self.view setBackgroundColor:[UIColor grayColor]];
        self.cPicker = [[VBColorPicker alloc] initWithFrame:CGRectMake(0, 0, 202, 202)];
        [_cPicker setCenter:self.view.center];
        [self.view addSubview:_cPicker];
        [_cPicker setDelegate:self];
        [_cPicker showPicker];
       
        // set default YES!
        [_cPicker setHideAfterSelection:NO];
    }
     
}

// set color from picker
- (void) pickedColor:(UIColor *)color {
    [_rect setBackgroundColor:color];
    [_cPicker hidePicker];
}

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    if (![_cPicker isHidden]) {
        [_cPicker hidePicker];
    }
}

// show picker by double touch
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
   
    if (touch.tapCount == 2) {
        [_cPicker setCenter:[touch locationInView:self.view]];
        [_cPicker showPicker];
    }
}

Small feature with UIlabel

Add framework QuartzCore

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#import

UILabel *label = [[UILabel alloc] init];
     [label setTextColor:[UIColor whiteColor]];
     [label setBackgroundColor:[UIColor darkGrayColor]];
     
     [[label layer] setBorderWidth:2];
     [[label layer] setCornerRadius:15];
     [[label layer] setBorderColor:[UIColor whiteColor].CGColor];
     
     [label setAlpha:0.8];
     [label setTextAlignment:UITextAlignmentCenter];
     [label setFrame:CGRectMake(0, 0, 220, 50)];
     [label setText:@"Loading..."];
     [label setCenter:window.center];
     [window addSubview:label];

Result:

UIImage and Memory

+[UIImage imageNamed:]
• Reads the file, uncompresses it, caches result
• Cached copy of data is kept even if the UIImage is deallocated
• Low memory condition causes cache to be purged.
• No direct control over when cache is purged.
• Use for small frequently drawn images.

+[UIImage imageWithContentsOfFile:]
• Just reads enough of file to determine if it can open the file.
• Reads and uncompresses the file each time it draws. Uses uncompressed size worth of memory only temporarily.
• Assigning a UIImage created this way to a UIImageView or as the contents of a CALayer also causes it to read and uncompress the file. The UIImageView or CALayer keep the expanded version.
Continue reading

Streatch image with stretchableImageWithLeftCapWidth: topCapHeight:

Sample

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
+ (UIImage*)greenBubble
{
    if (sGreenBubble == nil) {
        UIImage *i = [UIImage imageNamed:@"Balloon_1.png"];
        sGreenBubble = [[i stretchableImageWithLeftCapWidth:15 topCapHeight:13] retain];
    }
    return sGreenBubble;
}

+ (UIImage*)grayBubble
{
    if (sGrayBubble == nil) {
        UIImage *i = [UIImage imageNamed:@"Balloon_2.png"];
        sGrayBubble = [[i stretchableImageWithLeftCapWidth:21 topCapHeight:13] retain];
    }
    return sGrayBubble;
}

Results:
Continue reading

Radio buttons for iPhone application

Presented simple and nice solution for radio buttons, based on the UIButton.

Add buttons on view of controller

1
2
3
4
5
6
7
8
9
for (int i = 0; i < 5; i++) {
          UIButton *but = [UIButton buttonWithType:UIButtonTypeCustom];
          [but setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal];
          [but setImage:[UIImage imageNamed:@"checkedbox.png"] forState:UIControlStateSelected];
          [but setFrame:CGRectMake(0, 0, 17, 17)];
          [but setCenter:CGPointMake( 50,  i*40+20 )];
          [but addTarget:self action:@selector(checkboxButton:) forControlEvents:UIControlEventTouchUpInside];
          [self.view addSubview:but];
     }

Continue reading

Change RGB color of the picture

Change RGB color of the picture

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
- (UIImage *) changeColor: (UIImage *)image {
     UIGraphicsBeginImageContext(image.size);
     
     CGRect contextRect;
     contextRect.origin.x = 0.0f;
     contextRect.origin.y = 0.0f;
     contextRect.size = [image size];
     // Retrieve source image and begin image context
     CGSize itemImageSize = [image size];
     CGPoint itemImagePosition;
     itemImagePosition.x = ceilf((contextRect.size.width - itemImageSize.width) / 2);
     itemImagePosition.y = ceilf((contextRect.size.height - itemImageSize.height) );
     
     UIGraphicsBeginImageContext(contextRect.size);
     
     CGContextRef c = UIGraphicsGetCurrentContext();
     // Setup shadow
     // Setup transparency layer and clip to mask
     CGContextBeginTransparencyLayer(c, NULL);
     CGContextScaleCTM(c, 1.0, -1.0);
     CGContextClipToMask(c, CGRectMake(itemImagePosition.x, -itemImagePosition.y, itemImageSize.width, -itemImageSize.height), [image CGImage]);
     
     
     switch (colorSelected) {
          case 0:
               CGContextSetRGBFillColor(c, 0, 0, 1, 1);
               break;

          default:
               CGContextSetRGBFillColor(c, 1, 0, 0., 1);
               break;
     }
     
     contextRect.size.height = -contextRect.size.height;
     contextRect.size.height -= 15;
     // Fill and end the transparency layer
     CGContextFillRect(c, contextRect);
     CGContextEndTransparencyLayer(c);

     UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
     UIGraphicsEndImageContext();
     return img;
}

Source of SlideShow

Реализация слайдшоу!
Мелочь, которую можно быстро вставить в свой проект!
Компакто, в плане кода!

Спасибо разработчику, ресурс!

Mirror

Дизайним интерфейс в приложениях iPhone

На сегодняшний день всем хочется красивости и примочек, iPhone приложения не исключения! Вот реализовал по своему. Может кому покажется не так. Если у вас есть другие, более оптимальные варианты реализации, буду рад выслушать.

Вот что из этого получилось:iphone design application dev

Объект first выдвигается и задвигается с левой стороны, а second с правой стороны, плюс можно перемещать за любое место этого объекта. Эти свойства добавляют юзабилити интерфейсу.

Плюсы:
1. Красиво
2. Динамическое изменение размера без потери качества.

Минусы:
1. Когда центр попадает не на четкие координаты шрифты могут искажаться и разъезжаться картинки. Если окошко не динамическое лучше использовать статическую картинку.
Continue reading