【问题标题】:Keyboard Extension not working properly after iOS 10iOS 10 后键盘扩展无法正常工作
【发布时间】:2017-01-29 12:30:08
【问题描述】:

前段时间,我为 iOS 9 制作了带有表情符号的 custom Keyboard app。

iOS 10 出来后停止工作,现在只加载底部视图。

我不太清楚我的代码出了什么问题,或者 iOS 10 有什么变化,过去几天我在网上搜索,但找不到任何有用的东西

这是加载表情符号的代码

 - (void)loadNthEmoji{
    [self.keyboard.imvFavorite setBackgroundImage:[UIImage imageNamed:@"btn_favorite"] forState:UIControlStateNormal];

    NSInteger nTag = [defaults integerForKey:@"EMOJI_FACE_EMOJI_KIND"];
    if (nTag == 0)nTag = 1;

    [self setAlpha:nTag];
    [self removeSubViewFromEmojiView];


    CGRect rectWrapper = self.keyboard.scvEmojis.frame;

    CGFloat fSpace = 4;
    NSInteger nEmojiRow = 3;
    CGFloat fHeight = ((rectWrapper.size.height - (nEmojiRow + 1) * fSpace) / nEmojiRow);
    CGFloat fWidth = fHeight;

    NSInteger nCount = [[arrCounts objectAtIndex:nTag]integerValue];

    for (NSInteger i = 0 ; i < nCount; i ++){

        NSInteger nRow = i % nEmojiRow;
        NSInteger nColumn = i / nEmojiRow;


        CGRect rectFrame = CGRectMake(fSpace + (fSpace + fWidth) * nColumn, fSpace + (fSpace + fHeight) * nRow, fWidth/1.3, fHeight/1.3);


        UIImageView *imvEmoji = [[UIImageView alloc]initWithFrame:rectFrame];
        imvEmoji.contentMode = UIViewContentModeScaleAspectFit;
        imvEmoji.tag = 10000 * nTag + i;
        [imvEmoji setImage:[UIImage imageNamed:[NSString stringWithFormat:@"ec%i (%i).png", (int)nTag, (int)i + 1]]];


        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tabEmoji:)];

        [imvEmoji setUserInteractionEnabled:YES];
        [imvEmoji addGestureRecognizer:tapGesture];

        [self.keyboard.scvEmojis addSubview:imvEmoji];

    }

    [self.keyboard.scvEmojis setContentSize:CGSizeMake(fSpace + (fSpace + fWidth) * ((int)(nCount / nEmojiRow) + (nCount % nEmojiRow == 0 ? 0 : 1)), rectWrapper.size.height)];

    [activityIndicatorView stopAnimating];
    [self.keyboard.viewEmoji setHidden:NO];

}

编辑:仍然没有运气,有什么帮助吗?

【问题讨论】:

  • 你在模拟器上测试吗?如果是,则检查模拟器 -> 硬件 -> 键盘 -> 切换软件键盘。
  • 在模拟器和 iPhone 中测试。键盘出现了,但没有显示完整视图,只显示底部栏
  • 你发现了吗?我相信我遇到了同样的问题,在此处的示例项目中进行了概述:github.com/DimaVartanian/keyboard-extension-height-bug
  • @Dima 不,我没有,但是是的,它看起来像同一个问题。如果解决了我会分享的
  • @emiliomarin 我也面临同样的问题。你有解决这个问题的办法吗?

标签: ios iphone xcode custom-keyboard


【解决方案1】:

我通过设置一个新的高度约束来解决这个问题。如果它可以帮助任何有同样问题的人。我尝试了很多找到的答案,但都对我有用。

【讨论】:

  • 所以你只是为高度设置了一个明确的常数?不同的屏幕尺寸和不同的方向呢?它在 iPad Pro 上是什么样子的?
  • @Dima 在我的情况下,它只有一种尺寸,不使用 iPad,只有纵向。但我确信你的问题必须与你所拥有的约束有关,玩弄它们
  • @emiliomarin 它正在工作,但我认为这不是正确的解决方案。如果我的键盘设置为横向和纵向模式,我应该怎么做??
猜你喜欢
  • 2017-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
  • 2012-07-05
  • 2014-12-05
相关资源
最近更新 更多