2016-10-26 2 views
0

J'ai créé une icône flottante en utilisant le code suivant.Le texte n'est pas centré Aligné dans le bouton de l'interface utilisateur arrondie - ObjectiveC

- (void)createFloatingButton 
{ 

UIButton *floatingButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
floatingButton.frame = CGRectMake(kScreenWidth-kFloatingButtonSize-kFloatingButtonSize/2, self.view.frame.size.height-kFloatingButtonSize-kFloatingButtonSize/2, kFloatingButtonSize,kFloatingButtonSize); 
[floatingButton setBackgroundColor:kNavColor]; 
floatingButton.layer.cornerRadius = kFloatingButtonSize/2; 

//Configre Font and Text 
[floatingButton setTitle:@"+" forState:UIControlStateNormal]; 
floatingButton.titleLabel.font = [UIFont systemFontOfSize:30]; 

[floatingButton addTarget:self action:@selector(floatingButtonTapped) forControlEvents:UIControlEventTouchUpInside]; 

//Mange Alignment 
floatingButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; 
floatingButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 

//Add shadow 
floatingButton.layer.shadowColor = [[UIColor blackColor] CGColor]; 
floatingButton.layer.shadowOffset = CGSizeMake(0, 2.0f); 
floatingButton.layer.shadowOpacity = 0.6f; 
floatingButton.layer.shadowRadius = 3.0f; 
floatingButton.layer.masksToBounds = NO; 

[self.view addSubview:floatingButton]; 
} 

Ma sortie est comme ça:

enter image description here

Je ne suis pas en mesure d'apporter le + dans le centre.

+0

Vous pouvez utiliser image avec + au lieu de tout faire. Faire une image avec + lui-même. C'est facile, pas de problème pour + –

+0

@Jecky Dans Image, je dois ajouter un geste tap ou si je mets UIImage Derrière UIButton le code augmente Je ne veux pas utiliser Imgaege. – Dalvik

+0

"floatingButton.titleLabel.textAlignment = NSTextAlignmentCenter;" devrait être utile. – alicanbatur

Répondre

2

Définissez UIButton contentEdgeInsets pour ajuster le titre de votre bouton en haut, à gauche, en bas et à droite.

floatingButton.contentEdgeInsets = UIEdgeInsetsMake(top, left, bottom, right); 

Dans votre cas, il fera titre à centre

floatingButton.contentEdgeInsets = UIEdgeInsetsMake(0, 2, 3, 0); 

Note: selon votre code donné kFloatingButtonSize n'est pas mentionné, j'ai vérifié avec kFloatingButtonSize = 50

enter image description here