Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iPhone上扩展键盘渐变?_Iphone_Objective C_Ios - Fatal编程技术网

如何在iPhone上扩展键盘渐变?

如何在iPhone上扩展键盘渐变?,iphone,objective-c,ios,Iphone,Objective C,Ios,我看到很少有应用程序在扩展键盘,但我想知道它们是如何做到的 这里有两个例子 & 现在我知道我可以将inputAccessoryView添加到UITextView,但它仍然有一条细线,将键盘和UIToolbar分开,如下图所示 他们是怎么做到的?扩展UIWindow以容纳键盘还是以其他方式 用答案更新1: 所以我使用了泰拉斯写的解决方案 UIToolbar子类 我使用的不是图像,而是背景色与键盘渐变的修饰色相同的UIView,并使用UIViewAutoResizingMaskFlexibleW

我看到很少有应用程序在扩展键盘,但我想知道它们是如何做到的

这里有两个例子

&

现在我知道我可以将inputAccessoryView添加到UITextView,但它仍然有一条细线,将键盘和UIToolbar分开,如下图所示

他们是怎么做到的?扩展UIWindow以容纳键盘还是以其他方式

用答案更新1:

所以我使用了泰拉斯写的解决方案

  • UIToolbar子类
  • 我使用的不是图像,而是背景色与键盘渐变的修饰色相同的UIView,并使用UIViewAutoResizingMaskFlexibleWidth,以便旋转时覆盖键盘,高度为3像素
  • 下面是子类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:下面是我如何将其添加到UITextView的代码,以及我使用的色调颜色

    我使用以下代码将其添加到viewDidLoad中的UITextView

        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;  
    
    这就是应用解决方案后的情况


    我会尝试使用一个inputAccessoryView加上位于分隔线顶部的第二个视图,“填充间隙”

    将inputAccessoryView添加到键盘后(覆盖附件UIView子类中的didMoveToSuperview方法以在发生此情况时获得通知),将其添加到inputAccessoryView的superview

    在附件UIView子类中应该是这样的:

    - (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子类中的setFrame,以在键盘框架发生更改时更新gapView的框架。

    在iOS 7上,您可以创建一个
    inputAccessoryView
    以轻松匹配键盘样式:

    [[UIInputView alloc] initWithFrame:<#frame#> 
                        inputViewStyle:UIInputViewStyleKeyboard];
    
    [[UIInputView alloc]initWithFrame:
    inputViewStyle:UIInputViewStyleKeyboard];
    
    这是问题的解决方案。我会用anser更新问题。嗨,Amar!实际上,我希望增强我的输入附件视图(即UIToolbar),使其具有与此处所述相同的外观。您介意公布分离器HideView背景色的确切颜色设置吗?您是如何将UIToolbar着色以使其具有与键盘匹配的渐变的?非常感谢!你好,尼纳德。没问题。我不知道为什么上面的代码中没有显示颜色,但我会修复它。非常感谢!为我工作!