uiimageview의 이미지의 여러 설정
-
23-08-2019 - |
문제
최근에 이미 할당 된 UIIMAGEVIEWS 및 UIIMAGES를 사용하여 이미지로 자원의 할당 및 복제에 소요되는 시간을 최소화하여 렌더링 시간을 절약하려고 노력했습니다.
내가하려고하는 것은 모든 uiimages의 맵을 유지하는 것입니다. 게임이 진행됨에 따라 디스플레이에서 일부 uiimageviews를 제거하고 나중에 다른 사전로드 된 uiimages로 재사용 할 수 있습니다.
Uiimageview를 처음 만들 때 다음과 같은 작업을 수행합니다.
m_imageview = [[uiimageview alloc] initwithimage : initialimg];
m_parentView addSubview : m_imageview];
그리고 다음 시간에 나는 단순히 이미지를 전환합니다.
m_imageview.image 릴리스];
m_imageview setImage OthersavedImg];
문제는 스위치 후 표시된 새로운 이미지 크기가 초기 이미지 크기와 동일하다는 것입니다. 나는 매번 uiimageview를 재현함으로써 문제를 우회했지만 (시간 낭비처럼 보이는지), 왜 이런 일이 일어나고 어떻게 막을 수 있는지 궁금합니다.
감사,
해결책
uiimageview의 문서는 "이 방법은 지정된 이미지의 크기와 일치하도록 수신기의 프레임을 조정합니다"라고 말합니다. "setimage :"를 호출 할 때 간단한 속성 세터를 사용합니다. 여분의 재 계산은 수행되지 않습니다. uiimageview의 프레임의 크기를 재조정 해야하는 경우 수동으로 그렇게해야합니다.
당신이 준 맥락에서 판단하면, 이것은 당신이 다소 자주 할 일이 될 것 같습니다. 따라서 uiimageview에 대한 카테고리를 만드는 것이 좋습니다.
uiimageview+resizing.h :
@interface UIImageView (Resizing)
- (void) setImage:(UIImage *)newImage resize:(BOOL)shouldResize;
@end
uiimageview+resizing.m :
@implementation UIImageView (Resizing)
- (void) setImage:(UIImage *)newImage resize:(BOOL)shouldResize {
[self setImage:newImage];
if (shouldResize == YES) {
[self sizeToFit];
}
}
@end
이제 이미지를 변경하고 ImageView 크기를 조정해야 할 때마다 단순히 #import uiimageview+resizing.h 및 사용 : 사용하십시오.
[myImageView setImage:anImage resize:YES];