2013-12-09 3 views
0

Я хочу покрыть одну ячейку сетки с помощью статического изображения, но когда я добавляю изображение, оно появляется под ячейкой, но я хочу, чтобы она была выше ячейки, так что изображение ячейки покрывается статическим представлением изображения, которое может перемещаться при перемещении ячейки. В моем коде мое изображение просматривает ячейку, но я хочу, чтобы одно изображение, которое фиксировано, всегда приходит только вверху сетки. Когда я переместить ячейку мой ImageView не двигаетсяmy gridcell overlap my 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. сделать пользовательскую ячейку
  2. Добавьте статическое изображение в клетки contentView с помощью addSubview:
  3. Всякий раз, когда вы хотите, чтобы изображение, чтобы быть на вершине вызова [cell.contentView bringSubviewToFront:imageView]

Если это не поможет - разместите снимок экрана о том, что не так и как вы хотите.

0
  1. Сделайте вид с теми же свойствами, что и ячейка.
  2. добавьте этот вид на ключевой замок в нужном положении.
  3. Никогда не забывайте о [view removeFromSuperview] на viewWillDisappear delegate.
Смежные вопросы