2012-11-11 5 views
1

몇 주 동안 검색을 한 후 마침내 Github에서 내 필요에 맞는 예제를 발견했습니다. 그것은 쓰레기통의 예입니다. 나는 이제 나의 필요에 따라 본보기를 편집했다.UIScrollView에 이미지 배열 추가 ObjectiveC

이제 문제가 하나뿐입니다. 내 Scrollview에는 5 개의 이미지가 있지만 모두 동일합니다.

각 축소판을 다른 이미지로 만드는 방법을 알고 싶습니다. 이미지를 Scrollview에서 이미지 뷰로 드래그하면 그 이미지가 맨 위의 스크롤 뷰로 드래그됩니다.

기본적으로 나는 내 모든 scrollview에서 다른 이미지를 원합니다.

나는 거의 다 왔어. 나는 나의 전투를 완료하는 데 필요한이 마지막 일에 붙어있어.

언제나 도움이되었으므로 샘플 이미지와 샘플 프로젝트 링크가 아래에 나와 있습니다.

감사합니다.

enter image description here

MySampleProject

enter image description here enter image description here

답변

3

이를 둘 다 할 것입니다 내가 한 일이다.

하나.

다음
- (id)initWithFrame:(CGRect)frame imageName:(NSString *)imgName 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     isInScrollview = YES; 

     CGRect myImageRect = CGRectMake(0, 0, 64, 64); 
     images = [[UIImageView alloc] initWithFrame:myImageRect]; 

     // here's the change: 
     // instead of a constant name, use the `imgName` parameter 
     [images setImage:[UIImage imageNamed:imgName]]; 
     [self addSubview:images]; 

     self.backgroundColor = [UIColor blackColor]; 
     self.layer.borderWidth = 2; 
     self.layer.borderColor = [UIColor blackColor].CGColor; 
     self.layer.masksToBounds = YES; 
     self.layer.cornerRadius = 5; 
    } 
    return self; 
} 

는이 같은 GalleryScrollView 클래스의 - addAttachment: 방법 재 작성 :이 같은 GalleryButton 클래스의 - initWithFrame: 방법을 다시 작성, - [HegakaDragAndDropRecycleBinViewController viewDidLoad]에, 그리고

- (void) addAttachment:(AttachmentItem *)attachment withImageNamed:(NSString *)imgName 
{ 
    // everything stays the same (!), except this line: 
    GalleryButton *btnAttachment = [[GalleryButton alloc] initWithFrame:CGRectMake(startX, startY, width, height)]; 
    // is to be extended to: 
    GalleryButton *btnAttachment = [[GalleryButton alloc] initWithFrame:CGRectMake(startX, startY, width, height) imageName:imgName]; 
    ... 
} 

을 이미지의 파일 이름을 지정하면 사용하려면 :

[self.gallery addAttachment:item withImageNamed:@"recyclebin"]; 
[self.gallery addAttachment:item withImageNamed:@"canadian-maple"]; 
[self.gallery addAttachment:item withImageNamed:@"light-cherry"]; 
[self.gallery addAttachment:item withImageNamed:@"mozambique-wenge"]; 
[self.gallery addAttachment:item withImageNamed:@"canadian-maple"]; 

결과 :

,

enter image description here

+0

은 왜이 라인에서 에러를 얻을 것이다 : GalleryButton btnAttachment * = [GalleryButton ALLOC] INIT : CGRectMake (STARTX, startY, 폭, 높이) 참고 ImageName : imgName]; in GalleryScrollView.m "instance method -init : imageNamed not found? –

+0

어떻게하면 내 헤더 파일을 선언 할 수 있습니까? –

+0

이제는 작동하지만 HegakaDragAndDropRecycleBinViewController에서 경고가 표시됩니다 viewdidload with attachments withImageNamed not found. with my images [ self.gallery addAttachment : item withImageNamed : @ "recyclebin"]; –

0

참고 :이 문제에 대한 구체적인 연관성을 생각하는 코드의 조각을 제공하기 위해 앞으로, 그것은 도움이 될 것입니다. 전체 프로젝트를 게시하고 발생하는 문제는 약간 게으른 것처럼 보입니다. 너 뭐 해봤 니? 여기에서 물어보기 전에 시도한 것 중 무엇이 효과가 없었습니까? 당신의 GalleryButton.m 클래스에서

initWithFrame: 방법은 코드를 가지고 :

CGRect myImageRect = CGRectMake(0, 0, 64, 64); 
images = [[UIImageView alloc] initWithFrame:myImageRect]; 
[images setImage:[UIImage imageNamed:@"light-cherry.png"]]; 
[self addSubview:images]; 

가 실제로 하나의있는 UIImageView 때문에 변수 이름 images 혼란이지만,이 위치입니다 버튼의 이미지 할당되고 있습니다.

  1. 변경하십시오 initWithFrame: 초기화도를 설정 당신의 GalleryButton라는 setImage:(UIImage*)image에 새로운 방법을 추가 또는 유사한 UIImageView
  2. 에 전달 될 수있는 UIImage 객체를 받아들이는 : 하나에

    솔루션이 될 것입니다 UIImageView 개체의 image 그것은 나를라면 버튼을 만든 후 그 이미지가 수정하지 않는 한

는 솔직히 옵션이 경우에만 구현해야합니다, 1.

관련 문제