水平滚动视图Swift

时间:2016-12-24 08:52:07

标签: ios swift

我正在使用UIscrollView创建一个水平可滚动框。 使用API​​数据在滚动视图中显示,因此根据字符串长度我设置UIscrollView的内容大小。

当文本长于实际的盒子大小时,我使用点(椭圆)终止文本,当用户开始滚动时,我显示完整的字符串。

以下是创建水平可滚动框的代码:

let VarStrValue = rowArray[4] as! String

let stringCount  = (VarStrValue).characters.count
let lengthOfString = CGFloat(stringCount)*7


let VarView:UIScrollView = UIScrollView()
let Varframe = CGRect(x:545, y:yTopMargin, width:455, height:45)
VarView.frame=Varframe            

VarView.contentSize = CGSizeMake(lengthOfString, 0)
VarView.backgroundColor=UIColor(red:220/255, green: 221/255, blue: 224/255, alpha: 1.0)
VarView.delegate = self            


let InfoVarValuelabel = UILabel(frame: CGRectMake(5, 0, 455, 40))
InfoVarValuelabel.textAlignment = NSTextAlignment.Left
InfoVarValuelabel.text = VarStrValue
InfoVarValuelabel.textColor = UIColor(red:82/255, green:87/255, blue:95/255, alpha:1.0)
InfoVarValuelabel.font = UIFont(name:"HelveticaNeue", size: 11.0)
InfoVarValuelabel.lineBreakMode = NSLineBreakMode.ByTruncatingTail
VarView.addSubview(InfoVarValuelabel)

self.MemValueVu.addSubview(VarView)



func scrollViewDidScroll(scrollView: UIScrollView) {
    let subviews = scrollView.subviews

    for v in subviews {
        if v is UILabel {
            let VarLabel = v as! UILabel
            let VarString = VarLabel.text

            let stringCount  = (VarString)!.characters.count
            let lengthOfString = CGFloat(stringCount)


            print("scrollView.contentOffset.x \(scrollView.contentOffset.x)")
            if(scrollView.contentOffset.x > (lengthOfString/7))
            {
                VarLabel.frame = CGRectMake(5, 0, 5000, 40)
                VarLabel.text = VarString
                VarLabel.lineBreakMode = NSLineBreakMode.ByTruncatingTail

            }
            else{
                VarLabel.frame = CGRectMake(5, 0, 455, 40)
                VarLabel.text = VarString
                VarLabel.lineBreakMode = NSLineBreakMode.ByTruncatingTail
            }
        }

    }
}

但这样做我遇到了问题: 1)即使字符串不长,也会在字符串中添加额外的滚动。

2)在某些情况下,即使我滚动了一半的内容,也没有显示完整的字符串或显示完整的字符串略有延迟。一旦用户开始滚动,它应该显示完整的字符串。

你能建议如何解决这个问题吗?

0 个答案:

没有答案