0

環境:

私はチャットアプリを構築しています.appleサンプルのコードを使用しました。

ネイティブ メッセージ アプリとまったく同じように見えます。私の問題は、実装している iPad バージョンにあります。

画像は次のとおりです。

ここに画像の説明を入力

画像でわかるように、右側のバロンが画面の右端にある必要があります

コードを追跡し、微調整が必​​要なコード ブロックを絞り込みます。

// Comput the X,Y origin offsets
CGFloat xOffsetLabel;
CGFloat xOffsetBalloon;
CGFloat yOffset;

if (TRANSCRIPT_DIRECTION_SEND == transcript.direction) {//
    // Sent messages appear or right of view
    xOffsetLabel = 320 - labelSize.width - (BALLOON_WIDTH_PADDING / 2) - 3;
    xOffsetBalloon = 320 - balloonSize.width;
    yOffset = BUFFER_WHITE_SPACE / 2;
    _nameLabel.text = @"";
    // Set text color
    _messageLabel.textColor = [UIColor whiteColor];
    // Set resizeable image
    _balloonView.image = [self.balloonImageRight resizableImageWithCapInsets:_balloonInsetsRight];
}
else {
    // Received messages appear on left of view with additional display name label
    xOffsetBalloon = 0;
    xOffsetLabel = (BALLOON_WIDTH_PADDING / 2) + 3;
    yOffset = (BUFFER_WHITE_SPACE / 2) + nameSize.height - NAME_OFFSET_ADJUST;
    if (TRANSCRIPT_DIRECTION_LOCAL == transcript.direction) {
        _nameLabel.text = @"user";
    }
    else {
        _nameLabel.text = @"Admin"; //nameText;
    }
    // Set text color
    _messageLabel.textColor = [UIColor darkTextColor];
    // Set resizeable image
    _balloonView.image = [self.balloonImageLeft resizableImageWithCapInsets:_balloonInsetsLeft];
}

// Set the dynamic frames
_messageLabel.frame = CGRectMake(xOffsetLabel, yOffset + 5, labelSize.width, labelSize.height);
_balloonView.frame = CGRectMake(xOffsetBalloon, yOffset, balloonSize.width, balloonSize.height);
_nameLabel.frame = CGRectMake(xOffsetLabel - 2, 1, nameSize.width, nameSize.height);

残念ながら、緑色の風船を右側に配置しようとする試みは失敗しました (風船自体ではなく、テキストのコンテンツを右側に配置することしかできません)。何か案が ?

4

1 に答える 1

2

ここ:

xOffsetLabel = 320 - labelSize.width - (BALLOON_WIDTH_PADDING / 2) - 3;
xOffsetBalloon = 320 - balloonSize.width;

320 は iPhone の画面の幅です。これは、iPad の幅 (向きによって 1024 または 768) に変更する必要があります。

もちろん、ビューも iPad スクリーンと同じ幅にする必要があるので、それもサイズ変更されていることを確認してください。

ティム

于 2014-03-31T20:57:25.543 に答える