2012-10-28 15 views
6

Widzę, że kilka aplikacji rozszerza klawiaturę, ale chciałbym wiedzieć, jak to robią.Jak przedłużyć gradient klawiatury na iPhonie?

Oto 2 przykłady.

Textastic & Prompt

Teraz wiem, że mogę dodać inputAccessoryView do UITextView ale wciąż ma małą cienką linię, która oddziela klawiaturę z UIToolbar jak na zdjęciu mieszka.

enter image description here

Jak oni to robią? Rozszerzenie UIWindow, która posiada klawiaturę lub w jakiś inny sposób?

Update 1 z odpowiedzią:

Więc użyłem rozwiązanie Tyraz napisał.

  1. Podklasa UIToolbar
  2. Zamiast obrazu użyłem UIView z kolorem tła sam jak kolor wykończenia gradientu klawiatury iz UIViewAutoResizingMaskFlexibleWidth tak, że obejmuje klawiaturę po obróceniu, z wysokości 3 piksele

Oto kod na Update 2 podklasy UIToolbar

- (void)didMoveToSuperview { 

    [self.separatorHideView removeFromSuperview]; 

    CGRect seperatorRect = CGRectMake(self.frame.origin.x, 
             self.frame.size.height, 
             self.frame.size.width, 
             3.0); 

    self.separatorHideView = [[UIView alloc]]; 
    self.separatorHideView.backgroundColor = [UIColor colorWithRed:0.569 green:0.600 blue:0.643 alpha:1.000]; 
    self.separatorHideView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
    [self addSubview:self.separatorHideView]; 
} 

: Oto kod jak Dodaję go do UIT extView i jakiego koloru używam do zabarwienia.

Dodaję go do UITextView w viewDidLoad z następującym kodem

CustomToolbar *accessoryToolbar = [[CustomToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 38)]; 
    accessoryToolbar.tintColor = [UIColor colorWithRed:0.569 green:0.600 blue:0.643 alpha:1.000]; 
    editor.inputAccessoryView = accessoryToolbar; 

I tak to wygląda z rozwiązania zastosowanego do niego

enter image description here

+0

hi Amar! Właściwie zamierzam ulepszyć mój widok akcesoriów wejściowych (tj. Pasek UIToolbar), aby uzyskać ten sam wygląd, co opisano tutaj. Czy mógłbyś opublikować dokładne ustawienie kolorów dla tła separatorHideView? A w jaki sposób odcień paska UIToolbar został dopasowany do klawiatury?Z góry bardzo dziękuję! –

+0

Cześć Nenad. Nie ma problemu. Nie wiem, dlaczego kolor nie jest pokazany w powyższym kodzie, ale naprawię go. –

+0

Dziękuję bardzo! Pracował dla mnie! –

Odpowiedz

4

chciałbym spróbować użyć a inputAccessoryView plus drugi widok, który znajduje się na górze linii separatora i "wypełnia lukę".

Po dodaniu inputAccessoryView do klawiatury (nadpisanie metody didMoveToSuperview w podklasie UIView akcesoriów, aby otrzymać powiadomienie, gdy tak się stanie), dodaj ją do podglądu inputAccessoryView.

powinno być coś takiego w swoim akcesoriów UIView podklasy:

- (void)didMoveToSuperview { 
    [self.separatorHideView removeFromSuperview]; 

    CGRect seperatorRect = CGRectMake(self.frame.origin.x, 
            self.frame.origin.y + self.frame.size.height, 
            self.frame.size.width, 
            2.0); 

    UIImage *gapGradient = [UIImage imageNamed:@"GapGradient"]; 
    self.separatorHideView = [[UIImageView alloc]initWithImage:gapGradient]; 
    self.separatorHideView.frame = seperatorRect; 

    [self.superview addSubview:self.separatorHideView]; 
} 

Chciałbym również nadpisać setFrame w akcesorium UIView podklasy zaktualizowania klatkę gapView w przypadku rama klawiatury nie zostaną zmienione.

+0

To jest rozwiązanie problemu. Zaktualizuję pytanie z anser. –

6

iOS 7 można utworzyć inputAccessoryView dopasować styl klawiatury łatwo:

[[UIInputView alloc] initWithFrame:<#frame#> 
        inputViewStyle:UIInputViewStyleKeyboard];