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];
'IT > iOS' 카테고리의 다른 글
[regularExpression(정규표현식) replace multiple new lines into one new line(여러줄을 한줄로 바꾸기) (0) | 2013.08.04 |
---|---|
UISlider에 이미지 붙히기 (0) | 2013.05.12 |
아이폰 UI 싸이즈 (0) | 2013.05.12 |
이미지 컨트롤에 맞게 자동으로 늘여서 사용하기 (0) | 2013.05.11 |
컨트롤 동적으로 생성하기 (0) | 2013.05.11 |