2012-07-11 1 views
1

안녕. 앱을 개발 중이며 앱 자체에 배경을 설정하고 싶습니다. 이제는 for 루프와 태그 설정을 사용하여 버튼 배열을 만들었지 만 버튼을 클릭 할 때 아무런 이유없이 아무 일도 일어나지 않습니다. 여기 단추의 배열을 가진 iphone 벽지 세트 목적 c

-(void)showSettings { 
    [[objc_getClass("DreamBoard") sharedInstance] hideAllExcept:mainView]; 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:.5]; 

    if(toggled){ 
    photos = [[NSArray arrayWithObjects: 
       [UIImage imageWithContentsOfFile:@"/var/mobile/Library/iZoon/Images/Wallpapers/Wallpaper1.png"], 
       [UIImage imageWithContentsOfFile:@"/var/mobile/Library/iZoon/Images/Wallpapers/Wallpaper2.png"], 
       [UIImage imageWithContentsOfFile:@"/var/mobile/Library/iZoon/Images/Wallpapers/Wallpaper3.png"], 
       [UIImage imageWithContentsOfFile:@"/var/mobile/Library/iZoon/Images/Wallpapers/Wallpaper4.png"], 
       nil] retain]; 

    w=0; 
    for (UIImage *image in photos) 
    {       
     for (l = 0; l<(int)photos.count; l++) 
     { 
      wallpaperButton = [[UIButton alloc] initWithFrame:CGRectMake(5,130+150*w,150,150)]; 

      wallpaperButton.tag = l; 

      [wallpaperButton setImage:image forState:UIControlStateNormal]; 

      [wallpaperButton addTarget:self action:@selector(setWallpaper) forControlEvents:UIControlEventTouchDown]; 

      [settingsMenu addSubview: wallpaperButton]; 
      [wallpaperButton release]; 

     } 

     w++; 
    } 

은 배경 화면으로 설정하는 기능입니다 :

는이 버튼이 생성되는 곳입니다 버튼이 제대로 표시 이제

-(void)setWallpaper { 

UIImageView *bgView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,480)]; 

if ([wallpaperButton tag] == 1) { 
    bgView.image = [UIImage imageWithContentsOfFile:@"/var/mobile/Library/iZoon/Images/Wallpapers/Wallpaper1.png"]; 
} 
else if ([wallpaperButton tag] == 0) { 
    bgView.image = [UIImage imageWithContentsOfFile:@"/var/mobile/Library/iZoon/Wallpapers/Wallpaper2.png"]; 
} 
else if ([wallpaperButton tag] == 2) { 
    bgView.image = [UIImage imageWithContentsOfFile:@"/var/mobile/Library/iZoon/ Wallpapers/Wallpaper3.png"]; 
} 
else if ([wallpaperButton tag] == 3) { 
    bgView.image = [UIImage imageWithContentsOfFile:@"/var/mobile/Library/iZoon/Wallpapers/Wallpaper4.png"]; 
} 

[mainView insertSubview:bgView atIndex:0]; 
[bgView release]; 

}

을하지만 그들은하지 않습니다 뭐든지해라. 도움을 주시면 감사하겠습니다. 감사.

답변

2

NSLog 문을 추가하여 setWallpaper 메서드가 호출되는지 확인하십시오. 그렇다면 수정이 될 수 있다고 생각합니다.

Xcode 프로젝트에 이미지를 추가하기 만하면 이미지를 이름으로 가져올 수 있습니다. 이미지를 프로젝트로 드래그 할 때 "필요한 경우 프로젝트 폴더에 파일 복사"상자를 선택하십시오. 또한

if ([wallpaperButton tag] == 1) { 
    bgView.image = [UIImage imageNamed:@"Wallpaper1.png"]; 
} 
. 
. 
. 
[self.view addSubview:bgView]; 

, 당신은 당신의 앱이 상태 표시 줄 (배터리와 시계와 함께 하나) 숨어 않는 한 이미지가 실제로 높이를 가져야한다고 알고 있어야합니다 그리고 당신은 그냥이 작업을 수행 할 수있는 이미지를 얻을 수 있습니다 그 이유는 20px가 그만큼 소모 되었기 때문입니다.

+0

감사합니다. NSLog를 추가 한 후에 나는 어디서 오류가 있었는지 알아 내고 조정할 수있었습니다. 나는 지금까지 그것을 결코 사용하지 않았다. 고맙습니다! –