在iCarousel控件中显示图像上的文本

时间:2016-07-09 02:54:41

标签: ios swift icarousel

我试图将文字置于UIImageView控件内的iCarousel之上。有一个样本可以做到这一点,我使用与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中包含了它应该具有的文本,所以我知道这没关系。任何有关我的代码可能出错的想法都将不胜感激。感谢。

2 个答案:

答案 0 :(得分:0)

您需要在UILabel中将subview添加为UIImageView

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!  
}

希望这会对你有所帮助。

答案 1 :(得分:0)

我认为你的标签宽度和高度为0,0。

 name = UILabel(frame:itemView.bounds)

将其替换为以下行

name = UILabel(frame:CGRectMake(0, 0, 250, 250))