2013-06-30 4 views
1

L'image ci-dessous montre mon problème - Je veux un effet de papier déchiré comme vu ici, mais quand je faire défiler vers le haut ou vers le bas, comme vous voyez sur l'image le papier déchiré se déplace comme bien - je veux au moins garder sa position quand l'utilisateur fait défiler vers le haut. Comment puis-je archiver cela?iOS: Faire un UIImage rester sur le dessus dans Tableview

enter image description here

enter image description here

+0

Qu'est-ce que vous avez essayé jusqu'à maintenant? – Mrunal

+0

Mrunal: J'ai essayé de déplacer l'image derrière la vue de table dans le constructeur d'interface, est-il possible si je place une vue et l'image dans cette vue derrière la tableview? –

+0

Comment avez-vous défini l'arrière-plan de l'image de papier déchiré, Est-ce l'arrière-plan de uitableview ou le contrôleur de vue? – ldindu

Répondre

1

Utilisez shadowImage pour régler le papier déchiré, ainsi que l'ombre de la barre de navigation. Vous devrez également définir l'image d'arrière-plan de la barre pour qu'elle fonctionne. Vous devrez peut-être modifier le décalage de la vue de la table si l'image est grande.

+0

Fonctionne parfaitement mais savez-vous comment je peux enlever l'image d'ombre de la barre de navigation en entrant une autre partie de l'interface si je ne le veux pas? –

+0

Tant pis! juste pour mettre à zéro. UINavigationBar * bar = [self.navigationController navigationBar]; bar.shadowImage = nil; –

1

Une meilleure approche serait d'ajouter une vue d'image suivie d'une vue de table au contrôleur de vue et de définir l'image à la vue de l'image. La vue d'arrière-plan de tableview doit être définie à zéro et la couleur d'arrière-plan doit être définie pour effacer la couleur.

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIImageView *backgroundImageView = [[UIImageView alloc] initWithFrame:self.view.frame]; 
    backgroundImageView.image = "Your image"; 
    [self.view addSubview:backgroundImageView]; 

    UITableView *tableView = [[UITableView alloc] initWithFrame:"Desired frame"]; 
    tableview.backgroundView = nil; 
    tableView.backgroundColor = [UIColor clearColor]; 
    [self.view addSubview: tableView]; 
} 
0

Utilisez la propriété backgroundView pour obtenir l'effet souhaité. Placez ceci dans viewDidLoad

self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];