Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.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
iOS 10之后键盘扩展无法正常工作_Ios_Iphone_Xcode_Custom Keyboard - Fatal编程技术网

iOS 10之后键盘扩展无法正常工作

iOS 10之后键盘扩展无法正常工作,ios,iphone,xcode,custom-keyboard,Ios,Iphone,Xcode,Custom Keyboard,不久前,我在iOS 9上使用了表情符号 iOS 10发布后,它停止工作,现在只加载底部视图。 我不太清楚我的代码有什么问题,或者iOS 10有什么变化,我花了几天时间在网上搜索,但没有找到任何有用的东西 下面是它应该加载表情符号的代码 - (void)loadNthEmoji{ [self.keyboard.imvFavorite setBackgroundImage:[UIImage imageNamed:@"btn_favorite"] forState:UIControlSta

不久前,我在iOS 9上使用了表情符号

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

}
-(void)loadNthEmoji{
[self.keyboard.imvFavorite setBackgroundImage:[UIImage ImageName:@“btn_favorite”]用于状态:UIControlStateNormal];
NSInteger nTag=[默认整数:@“表情脸”表情种类];
如果(nTag==0)nTag=1;
[自我设定α:nTag];
[self-RemoveSubview fromMojiView];
CGRect rectWrapper=self.keyboard.scvEmojis.frame;
cgfspace=4;
NSInteger-nEmojiRow=3;
CGFloat FHHEIGHT=((rectWrapper.size.height-(nEmojiRow+1)*fSpace)/nEmojiRow);
CGFloat fWidth=fh高;
NSInteger nCount=[[arrCounts objectAtIndex:nTag]integerValue];
对于(NSInteger i=0;i

编辑:仍然不走运,有什么帮助吗?

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


您是否在模拟器上进行测试?如果是,则检查模拟器->硬件->键盘->切换软件键盘。在模拟器和iPhone中测试。键盘出现了,但它没有显示完整的视图,只有底部的barDid,你明白了吗?我相信我遇到了同样的问题,在这里的一个示例项目中概述:@Dima不,我没有,但是的,它看起来像是同一个问题。如果我得到它,我会和你分享solved@emiliomarin我也面临同样的问题。你有没有找到解决这个问题的方法?所以你只需要为高度设置一个显式常量?不同的屏幕尺寸和方向如何?它在iPad Pro上看起来像什么?@Dima在我的例子中,它只有一个尺寸,没有使用iPad,只有肖像。但我相信你的问题在于你的约束,玩弄它them@emiliomarin这是可行的,但我认为这不是正确的解决办法。如果我的键盘设置为横向和纵向模式,我应该怎么做??