2013-12-09 3 views
0

격자보기의 한 셀을 정적 이미지 뷰로 덮고 싶지만 이미지 뷰를 추가하면 셀 아래에 표시되지만 셀 위의 셀 이미지가 정적 이미지 뷰로 덮여 있기를 원합니다 세포가 움직일 때 움직일 수있다. 내 코드에서 내 imageview 셀을 날려 버릴거야하지만 고정 된 하나의 이미지 항상 gridcell 꼭대기 온다. 내가 셀을 이동하면 상단 통화로 이미지를 원하는 때마다 내 이미지 뷰는 addSubview: 내 gridcell 오버랩 내 imageview

  • 를 사용하여

    DWExampleGridViewController.h 
    #import "DWGridController.h" 
    
    @interface DWExampleGridViewController : DWGridViewController 
    { 
    
    } 
    @property (strong, nonatomic) IBOutlet UIImageView *iv; 
    @end 
    
    
        DWExampleGridViewController.m 
    
    
        #import "DWExampleGridViewController.h" 
        #import "DWExampleGridViewCell.h" 
        #import "DWExampleGridViewController.h" 
        #import "DWGridViewController.h" 
        @interface DWExampleGridViewController() 
    
        @end 
    
        @implementation DWExampleGridViewController 
        @synthesize iv; 
        - (id)init 
        { 
         self = [super init]; 
         if (self) 
         { 
    
          for(int row = 0; row < 9; row++) 
          { 
           for(int col = 0; col < 9; col++) 
           { 
    
             DWExampleGridViewCell *cell = [[DWExampleGridViewCell alloc] init]; 
             UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d-%d.jpeg",row,col]]; 
    
             iv = [[UIImageView alloc] initWithImage:image]; 
             [iv setContentMode:UIViewContentModeScaleAspectFill]; 
            iv.clipsToBounds = YES; 
    
             [iv setTranslatesAutoresizingMaskIntoConstraints:NO]; 
             //[cell addSubview:iv]; 
            //[self.view insertSubview:iv atIndex:0]; 
    
             [cell insertSubview:iv atIndex:0]; 
    
             [cell addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[iv]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(iv)]]; 
             [cell addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[iv]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(iv)]]; 
    
             NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; 
             [dict setObject:cell forKey:@"Cell"]; 
             [dict setObject:[NSNumber numberWithInt:row] forKey:@"Row"]; 
             [dict setObject:[NSNumber numberWithInt:col] forKey:@"Column"]; 
    
    
             if(image) 
              [dict setObject:image forKey:@"Image"]; 
             [self.cells addObject:dict]; 
           } 
          } 
    
    
         } 
         [self image]; 
    
         return self; 
        } 
    
        - (void)viewDidLoad 
        { 
    
    
        } 
        -(void)image 
        { 
         DWExampleGridViewCell *cell = [[DWExampleGridViewCell alloc] init]; 
         UIImageView *v = [[UIImageView alloc] init]; 
         v.frame=CGRectMake(108,155, 105, 160); 
         v.image=[UIImage imageNamed:@"4.jpeg"]; 
         [v setContentMode:UIViewContentModeScaleAspectFill]; 
         v.clipsToBounds = YES; 
         //DWExampleGridViewController *grid = [[DWExampleGridViewController alloc]init]; 
         //[self.view insertSubview:v aboveSubview:grid.iv]; 
         //[self.view insertSubview:v atIndex:2]; 
         //[cell insertSubview:v atIndex:1]; 
         //[cell insertSubview:v aboveSubview:iv]; 
         [[[[UIApplication sharedApplication] delegate] window] insertSubview:v aboveSubview:cell]; 
         [self.view bringSubviewToFront:self.gridView]; 
    
        } 
    
    
    
        #pragma mark - GridView datasource 
        -(NSInteger)numberOfColumnsInGridView:(DWGridView *)gridView 
        { 
         return 8; 
        } 
    
        -(NSInteger)numberOfRowsInGridView:(DWGridView *)gridView 
        { 
         return 8; 
        } 
    
        -(NSInteger)numberOfVisibleRowsInGridView:(DWGridView *)gridView 
        { 
         return 3; 
        } 
    
        -(NSInteger)numberOfVisibleColumnsInGridView:(DWGridView *)gridView 
        { 
         return 3; 
        } 
    
    
        #pragma mark - GridView delegate 
        -(void)gridView:(DWGridView *)gridView didSelectCell:(DWGridViewCell *)cell atPosition:(DWPosition)position 
        { 
         NSDictionary *cellDictionary = [self cellDictionaryAtPosition:position]; 
         UIImage *image = [cellDictionary objectForKey:@"Image"]; 
    
         UIButton *button = [[UIButton alloc] init]; 
         button.translatesAutoresizingMaskIntoConstraints = NO; 
         [button setBackgroundImage:image forState:UIControlStateNormal]; 
         [button addTarget:self action:@selector(buttonTapped) forControlEvents:UIControlEventTouchDown]; 
    
         UIViewController *contr = [[UIViewController alloc] init]; 
         [contr.view addSubview:button]; 
    
         [contr.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[button]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button)]]; 
         [contr.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[button]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(button)]]; 
    
         [self presentViewController:contr animated:YES completion:nil]; 
        } 
    
        -(void)buttonTapped 
        { 
    
         [[self presentedViewController] dismissViewControllerAnimated:YES completion:nil]; 
        } 
        @end 
    
  • 답변

    0
    1. 가 세포에 정적 이미지를 추가있는 contentView 사용자 정의 셀
    2. 을 확인 이동하지 않습니다 [cell.contentView bringSubviewToFront:imageView]

    이 방법이 도움이되지 않는 경우 - 잘못된 내용과 원하는 방식의 스크린 샷을 게시하십시오.

    0
    1. 셀과 동일한 속성을 갖는보기를 만듭니다.
    2. keywindow에서 해당 위치를 필수 위치에 추가하십시오.
    3. viewWillDisappear 대리자에서 [view removeFromSuperview]를 잊어 본 적이 없습니다.
    관련 문제