在 iCarousel 控件中在图像上显示文本
Displaying text over image in iCarousel control
我试图将文本放在 iCarousel
控件内的 UIImageView
之上。有一个示例可以做到这一点,我使用了与 func carousel(carousel: iCarousel, viewForItemAtIndex index: Int, reusingView view: UIView?) -> UIView
相同的代码,正文是
{
var itemView: UIImageView
var name: UILabel
if (view == nil)
{
itemView = UIImageView(frame:CGRectMake(0, 0, 250, 250))
itemView.image = ShareData.sharedInstance.accounts[index].getPicture()
itemView.contentMode = .ScaleAspectFit
name = UILabel(frame:itemView.bounds)
name.backgroundColor = MyVariables.backgroundColor
name.textAlignment = .Center
name.textColor = MyVariables.outlineColor
name.font = name.font.fontWithSize(50)
name.tag = 1
}
else
{
itemView = view as! UIImageView;
name = itemView.viewWithTag(1) as! UILabel!
}
name.text = ShareData.sharedInstance.accounts[index].accountName
return itemView
}
我不确定我做错了什么。显然,变量是不同的,但我的代码与示例中的代码一样,我可以得到它没有做我想做的事情。我已经检查过,变量 .accountName 中包含它应该包含的文本,所以我知道这没问题。任何关于我的代码可能有什么问题的想法都将不胜感激。谢谢
您需要像这样在 UIImageView
中添加 UILabel
作为 subview
if (view == nil)
{
itemView = UIImageView(frame:CGRectMake(0, 0, 250, 250))
itemView.image = ShareData.sharedInstance.accounts[index].getPicture()
itemView.contentMode = .ScaleAspectFit
name = UILabel(frame:itemView.bounds)
name.backgroundColor = MyVariables.backgroundColor
name.textAlignment = .Center
name.textColor = MyVariables.outlineColor
name.font = name.font.fontWithSize(50)
name.tag = 1
//You forgot to add this name label in itemView
itemView.addSubview(name)
}
else
{
itemView = view as! UIImageView;
name = itemView.viewWithTag(1) as! UILabel!
}
希望对您有所帮助。
我认为您得到的标签宽度和高度为 0,0。
name = UILabel(frame:itemView.bounds)
将其替换为下行
name = UILabel(frame:CGRectMake(0, 0, 250, 250))
我试图将文本放在 iCarousel
控件内的 UIImageView
之上。有一个示例可以做到这一点,我使用了与 func carousel(carousel: iCarousel, viewForItemAtIndex index: Int, reusingView view: UIView?) -> UIView
相同的代码,正文是
{
var itemView: UIImageView
var name: UILabel
if (view == nil)
{
itemView = UIImageView(frame:CGRectMake(0, 0, 250, 250))
itemView.image = ShareData.sharedInstance.accounts[index].getPicture()
itemView.contentMode = .ScaleAspectFit
name = UILabel(frame:itemView.bounds)
name.backgroundColor = MyVariables.backgroundColor
name.textAlignment = .Center
name.textColor = MyVariables.outlineColor
name.font = name.font.fontWithSize(50)
name.tag = 1
}
else
{
itemView = view as! UIImageView;
name = itemView.viewWithTag(1) as! UILabel!
}
name.text = ShareData.sharedInstance.accounts[index].accountName
return itemView
}
我不确定我做错了什么。显然,变量是不同的,但我的代码与示例中的代码一样,我可以得到它没有做我想做的事情。我已经检查过,变量 .accountName 中包含它应该包含的文本,所以我知道这没问题。任何关于我的代码可能有什么问题的想法都将不胜感激。谢谢
您需要像这样在 UIImageView
中添加 UILabel
作为 subview
if (view == nil)
{
itemView = UIImageView(frame:CGRectMake(0, 0, 250, 250))
itemView.image = ShareData.sharedInstance.accounts[index].getPicture()
itemView.contentMode = .ScaleAspectFit
name = UILabel(frame:itemView.bounds)
name.backgroundColor = MyVariables.backgroundColor
name.textAlignment = .Center
name.textColor = MyVariables.outlineColor
name.font = name.font.fontWithSize(50)
name.tag = 1
//You forgot to add this name label in itemView
itemView.addSubview(name)
}
else
{
itemView = view as! UIImageView;
name = itemView.viewWithTag(1) as! UILabel!
}
希望对您有所帮助。
我认为您得到的标签宽度和高度为 0,0。
name = UILabel(frame:itemView.bounds)
将其替换为下行
name = UILabel(frame:CGRectMake(0, 0, 250, 250))