为什么不能显示灰色气泡图像?
Why can't the gray bubble image be shown?
我正在与 Swift 进行聊天 iOS 应用。在ChatLogController
中,我在聊天中添加了两个气泡图screen.The显示蓝色气泡图像,但无法显示灰色气泡。我确定我已经在 xcassets 文件中添加了两个图像。
static let grayBubbleImage = UIImage(named:"bubble_gray")!.resizableImageWithCapInsets(UIEdgeInsetsMake(22,26,22,26)).imageWithRenderingMode(.AlwaysTemplate)
static let blueBubbleImage = UIImage(named:"bubble_blue")!.resizableImageWithCapInsets(UIEdgeInsetsMake(22,26,22,26)).imageWithRenderingMode(.AlwaysTemplate)
let bubbleImageView:UIImageView =
{
let imageView = UIImageView()
imageView.image = ChatLogMessageCell.grayBubbleImage
imageView.tintColor = UIColor(white: 0.90, alpha: 1)
return imageView
}()
if message.isSender!.boolValue
{
cell.messageTextView.frame = CGRectMake(48 + 8, 0, estimatedFrame.width + 16, estimatedFrame.height + 20)
cell.textBubbleView.frame = CGRectMake(48 - 10, -4, estimatedFrame.width + 16 + 8 + 16, estimatedFrame.height + 20 + 6)
cell.profileImageView.hidden = false
// cell.textBubbleView.backgroundColor = UIColor(white: 0.95, alpha: 1)
cell.bubbleImageView.image = ChatLogMessageCell.grayBubbleImage
cell.bubbleImageView.tintColor = UIColor(white: 0.95, alpha: 1)
cell.messageTextView.textColor = UIColor.blackColor()
}
else
{
cell.messageTextView.frame = CGRectMake(view.frame.width - estimatedFrame.width - 16 - 16,0, estimatedFrame.width + 16, estimatedFrame.height+20)
cell.textBubbleView.frame = CGRectMake(view.frame.width - estimatedFrame.width - 16 - 16 - 8, 0, estimatedFrame.width + 16 + 8, estimatedFrame.height+20)
cell.profileImageView.hidden = true
// cell.textBubbleView.backgroundColor = UIColor(red: 0, green: 137/255, blue: 249/255, alpha: 1)
cell.bubbleImageView.image = ChatLogMessageCell.blueBubbleImage
cell.bubbleImageView.tintColor = UIColor(red: 0, green: 137/255, blue: 249/255, alpha: 1)
cell.messageTextView.textColor = UIColor.whiteColor()
}
谢谢。
您使用的图像渲染模式是 always template
,因此如果您的图像是 png
,然后您设置了 imageview 的色调颜色,那么它会更改该 png 图像的颜色。因此,我认为您正在为该图像视图提供灰色调颜色,以便图像变为灰色,如果该图像视图的背景颜色为灰色,则您无法区分它们。
希望这会有所帮助:)
我正在与 Swift 进行聊天 iOS 应用。在ChatLogController
中,我在聊天中添加了两个气泡图screen.The显示蓝色气泡图像,但无法显示灰色气泡。我确定我已经在 xcassets 文件中添加了两个图像。
static let grayBubbleImage = UIImage(named:"bubble_gray")!.resizableImageWithCapInsets(UIEdgeInsetsMake(22,26,22,26)).imageWithRenderingMode(.AlwaysTemplate)
static let blueBubbleImage = UIImage(named:"bubble_blue")!.resizableImageWithCapInsets(UIEdgeInsetsMake(22,26,22,26)).imageWithRenderingMode(.AlwaysTemplate)
let bubbleImageView:UIImageView =
{
let imageView = UIImageView()
imageView.image = ChatLogMessageCell.grayBubbleImage
imageView.tintColor = UIColor(white: 0.90, alpha: 1)
return imageView
}()
if message.isSender!.boolValue
{
cell.messageTextView.frame = CGRectMake(48 + 8, 0, estimatedFrame.width + 16, estimatedFrame.height + 20)
cell.textBubbleView.frame = CGRectMake(48 - 10, -4, estimatedFrame.width + 16 + 8 + 16, estimatedFrame.height + 20 + 6)
cell.profileImageView.hidden = false
// cell.textBubbleView.backgroundColor = UIColor(white: 0.95, alpha: 1)
cell.bubbleImageView.image = ChatLogMessageCell.grayBubbleImage
cell.bubbleImageView.tintColor = UIColor(white: 0.95, alpha: 1)
cell.messageTextView.textColor = UIColor.blackColor()
}
else
{
cell.messageTextView.frame = CGRectMake(view.frame.width - estimatedFrame.width - 16 - 16,0, estimatedFrame.width + 16, estimatedFrame.height+20)
cell.textBubbleView.frame = CGRectMake(view.frame.width - estimatedFrame.width - 16 - 16 - 8, 0, estimatedFrame.width + 16 + 8, estimatedFrame.height+20)
cell.profileImageView.hidden = true
// cell.textBubbleView.backgroundColor = UIColor(red: 0, green: 137/255, blue: 249/255, alpha: 1)
cell.bubbleImageView.image = ChatLogMessageCell.blueBubbleImage
cell.bubbleImageView.tintColor = UIColor(red: 0, green: 137/255, blue: 249/255, alpha: 1)
cell.messageTextView.textColor = UIColor.whiteColor()
}
谢谢。
您使用的图像渲染模式是 always template
,因此如果您的图像是 png
,然后您设置了 imageview 的色调颜色,那么它会更改该 png 图像的颜色。因此,我认为您正在为该图像视图提供灰色调颜色,以便图像变为灰色,如果该图像视图的背景颜色为灰色,则您无法区分它们。
希望这会有所帮助:)