2012-10-28 7 views
6

キーボードを拡張しているアプリはほとんどありませんが、どのように機能しているか知りたいと思います。iPhoneでキーボードのグラデーションを拡張するには?

ここに2つの例があります。

Textastic & Prompt

今、私はUITextViewにinputAccessoryViewを追加することができます知っているが、それは、静止画怒鳴るのようUIToolbarからキーボードを分離し、小さな細い線を持っています。彼らはそれを行う方法

enter image description here

?キーボードを保持するUIWindowを拡張する、または何らかの方法で拡張しますか?

アップデート1の回答:

だから私はティラズが書いた解決策を使用しました。

  1. サブクラスUIToolbar
  2. 代わりの回転時にキーボードを覆うように、私は3つの画素
の高さと、キーボード勾配の仕上げ色と同じ背景色で及びUIViewAutoResizingMaskFlexibleWidthとのUIViewを使用している画像 ここ

は、サブクラス化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]; 
} 

アップデート2用のコードです:ここで私はUITにそれを追加しているどのようにコードがあります私が色合いのために使用している色は何ですか?

私はコード

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; 

以下でのviewDidLoadでUITextViewにそれを追加している。これは、それは溶液でどのように見えるかですが、私が使用しようとするだろう

enter image description here

+0

ハイテクアマールを!実際には、入力アクセサリビュー(つまりUIToolbar)をここで説明したのと同じ外観にすることを検討しています。 separatorHideViewの背景色の正確な色設定を投稿してもよろしいですか?そして、どのようにUIToolbarをキーボードに合わせるために一致するグラデーションを持つように着色しましたか?事前に多くの感謝! –

+0

こんにちはNenad。問題ない。上記のコードで色が表示されない理由はわかりませんが、修正します。 –

+0

ありがとうございます!私のために働いた! –

答えて

4

それに適用されますinputAccessoryViewとセパレータラインの上に位置し、「ギャップを埋める」第2のビュー。

キーボードにinputAccessoryViewを追加したら(アクセサリUIViewサブクラスのdidMoveToSuperviewメソッドを上書きして、これが発生したときに通知されます)、それをinputAccessoryViewのスーパービューに追加します。キーボードのフレームが変更された場合には私もgapViewのフレームを更新するために、あなたのアクセサリーのUIViewサブクラスでsetFrameを上書きする

- (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]; 
} 

は、あなたのアクセサリーのUIViewサブクラスでそのようなものであるべき。 iOSの7で

+0

これは問題の解決方法です。アンサーに質問を更新します。 –

6

あなたは簡単にキーボードのスタイルにマッチするinputAccessoryViewを作成することができます。

[[UIInputView alloc] initWithFrame:<#frame#> 
        inputViewStyle:UIInputViewStyleKeyboard]; 
関連する問題