2

私はMessagesTableViewControllerに従っており、バブルビューの UIImage をスターチしてテキストサイズごとに伸ばす方法があります。古い iOS バージョンでは正常に動作していますが、以下のようios7に設定したように、明るい色の境界線が表示さUIEdgeInsetsMakeれます。

+ (UIImage *)bubbleDefaultIncoming
{
  return [[UIImage imageNamed:@"bg-chat-white.png"] makeStretchableDefaultIncoming];
}

- (UIImage *)makeStretchableDefaultIncoming
{

  return [self resizableImageWithCapInsets:UIEdgeInsetsMake(15.0f,20.0f, 15.0f, 20.0f)
                            resizingMode:UIImageResizingModeStretch];
}

ここにios6との 2 つのスナップショットを添付ios7しました。これは、コードは同じですが、ios7 でバブル ビューがどのように動作するかを説明しています。 ios6 バブルios7バブル

誰かが同じ問題を抱えており、GITHUB HERE
で報告しまし たコードを非常にレビューしたところ、ios7 に問題があるようですresizableImageWithCapInsets。メソッドで設定した境界線を生成しますUIEdgeInsetsMake
バブル ビューから境界線を削除し、ios6 バブル ビューと同じにするアイデアや解決策はありますか?
どんな助けもかなりのものです。前もって感謝します。

4

3 に答える 3

4

幅または高さが浮動小数点数の場合、iOS 7 で透明な線が追加されます。回避策として、この数値を丸めることができます

于 2013-10-02T04:02:29.743 に答える
1

両方の答えが正しいことを確認できますが、私と同じフレームワークを使用しているため、役立つスニペットを提供します。

泡のサイズの床または天井だけで、準備完了です。

- (CGRect)bubbleFrame
{
    CGSize bubbleSize = [JSBubbleView bubbleSizeForText:self.text];
    return CGRectMake((self.type == JSBubbleMessageTypeOutgoing ? floor(self.frame.size.width - bubbleSize.width) : 0),
                  kMarginTop,
                  floor(bubbleSize.width),
                  floor(bubbleSize.height));
}

編集: kMarginTop は既に出ているバブルの場合にのみ必要なので、位置も切り上げまたは切り下げる必要があります。平和

于 2013-10-18T08:51:31.320 に答える