2017-04-06 2 views
0
using UIKit; 
using Xamarin.Forms; 
using Xamarin.Forms.Platform.iOS; 

[assembly: ExportRenderer(typeof(SearchBar), typeof(RCI.iOS.SearchBarRenderer))] 
namespace RCI.iOS 
{ 
    public class SearchBarRenderer : Xamarin.Forms.Platform.iOS.SearchBarRenderer 
    { 
    protected override void OnElementChanged(ElementChangedEventArgs<SearchBar> e) 
    { 
     if(Control != null) 
     { 
     Control.Text = "Help Me!"; 
     Control.Layer.CornerRadius = 0; 
     Control.TintColor = UIKit.UIColor.White; 
     Control.SetPositionAdjustmentforSearchBarIcon(UIOffset.Zero, UISearchBarIcon.Search); 
     } 

     base.OnElementChanged(e); 
    } 
    } 
} 

J'essaie de créer un moteur de rendu personnalisé pour ma barre de recherche. Je travaille avec Xamarin.Forms iOS et j'ai déjà fait des rendus pour ce projet. Mais pour une raison quelconque, je ne peux pas obtenir ces modifications à appliquer à mon searchBar.SearchBar Renderer Modifications ne s'appliquant pas

+0

Le code est-il exécuté lorsque vous placez un point d'arrêt? –

+0

Oui, si j'ajoute un point d'arrêt, ce code est touché. – JaySik

+0

s'il vous plaît supprimer. Ajout d'un commentaire complet et formaté ci-dessous –

Répondre

0

Je ne suis pas sûr du résultat que vous ne voyez pas appliqué. Je devine que la couleur de fond ne change pas au blanc comme vous vous attendez. Vous devez appliquer un truc stupide de charger une image vide iOS afin que la coloration par défaut de la barre de recherche est remplacée. Ajoutez ce qui suit à votre méthode FinishedLaunching dans votre appDelegate et vous devriez être bon.

UISearchBar.Appearance.BackgroundImage = new UIImage();