posted by dalnimbest 2013. 5. 11. 12:15

버튼등에 올릴 이미지가 버튼보다 크면 이미지밖에 안보인다. 또한 이미지전체가 메모리에 올라오기 때문에 불필요한 메모리 낭비가 된다.

그래서 버튼의 크기에 맞게 이미지를 resize해서 올린다.

//원본 이미지와 원하는 싸이즈를 받아서 싸이즈만큼의 이미지를 리턴
-
(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {     UIGraphicsBeginImageContext(newSize);
    
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];     UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();     UIGraphicsEndImageContext(); return newImage;
}

//사용방법
UISegmentedControl
* segmentButton; segmentButton = [UISegmentedControl segmentedControlWithItems: [NSArray arrayWithObjects: [self imageWithImage:[UIImage imageNamed:@"option_one.png"] scaledToSize:CGSizeMake(32, 32)], [self imageWithImage:[UIImage imageNamed:@"option_two.png"] scaledToSize:CGSizeMake(32, 32)], nil]]; segmentButton.contentMode = UIViewContentModeScaleToFill; segmentButton.frame = CGRectMake(10, 10, 200, 32); [view addSubview:segmentButton];