Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Swift中的子CrollView中删除ImageView_Swift - Fatal编程技术网

从Swift中的子CrollView中删除ImageView

从Swift中的子CrollView中删除ImageView,swift,Swift,我正在启用页面的主ScrollView。在此情况下,我有子ScrollView和ImageView来显示图像。我想从主ScrollView中删除选定的图像。。我不知道如何从ScrollView中获取选定的ImageView并将其删除…这是我的代码。 func createScroll() { var arrayImage = NSUserDefaults.standardUserDefaults().objectForKey("ImageArray") as NSMutableArray

我正在启用页面的主ScrollView。在此情况下,我有子ScrollView和ImageView来显示图像。
我想从主ScrollView中删除选定的图像。。我不知道如何从ScrollView中获取选定的ImageView并将其删除…这是我的代码。

func createScroll()
{
    var arrayImage = NSUserDefaults.standardUserDefaults().objectForKey("ImageArray") as NSMutableArray
    var index = NSUserDefaults.standardUserDefaults().objectForKey("Index") as Int

    var scroll = UIScrollView(frame: CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height))
    var page = UIPageControl(frame: CGRectMake(0, 0, scroll.frame.size.width, scroll.frame.size.height))
    page.numberOfPages = arrayImage.count
    page.currentPage = 0
    page.autoresizingMask = UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth

    scroll.contentSize = CGSizeMake(scroll.frame.size.width * CGFloat(arrayImage.count - 1) , 0)
    scroll.delegate = self
    scroll.pagingEnabled = true
    scroll.maximumZoomScale = 6
    scroll.minimumZoomScale = 0.5
    scroll.tag = Tags.Tag_MainScroll.rawValue
    scroll.addSubview(page)
    view.addSubview(scroll)
    scroll.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
    scroll.contentOffset = CGPointMake(scroll.frame.size.width * CGFloat(index - 1) , 0)
}

//MARK: Display Selected Image
func displayImage()
{
    var mainScroll : UIScrollView = view.viewWithTag(Tags.Tag_MainScroll.rawValue) as UIScrollView
    var arrayImage = NSUserDefaults.standardUserDefaults().objectForKey("ImageArray") as NSMutableArray
    var xPosition : CGFloat = 0
    for i in 1...22
    {
        var subScroll = UIScrollView(frame: CGRectMake(xPosition, 0, view.frame.size.width, view.frame.size.height))
        subScroll.delegate = self
        subScroll.maximumZoomScale = 6
        subScroll.minimumZoomScale = 0.5
        subScroll.tag = Tags.Tag_SubScroll.rawValue + i
        mainScroll.addSubview(subScroll)

        var imgToDisplay : UIImage = UIImage(named: "\(arrayImage[i])")! as UIImage
        var imgView : UIImageView = UIImageView(frame: CGRectMake((subScroll.frame.size.width - 100 ) / 2,(subScroll.frame.size.height - 100) / 2, 100, 100))
        subScroll.contentSize = CGSizeMake(imgView.frame.size.width, imgView.frame.size.height)
        imgView.image = imgToDisplay
        imgView.tag = Tags.Tag_imgView.rawValue 
        subScroll.addSubview(imgView)
        xPosition += subScroll.frame.size.width
    }
}
这是我的删除功能

func Delete()
{
    var imgView : UIImageView? = view.viewWithTag(Tags.Tag_imgView.rawValue) as? UIImageView
    var scroll : UIScrollView = view.viewWithTag(Tags.Tag_MainScroll.rawValue) as UIScrollView
    for img in scroll.subviews
    {
        imgView = img as? UIImageView
        imgView?.removeFromSuperview()
    }
}`

你试过这个吗

let subViews = self.scrollView.subviews
for subview in subViews{
    subview.removeFromSuperview()
}

参考文献是否尝试过这个

let subViews = self.scrollView.subviews
for subview in subViews{
    subview.removeFromSuperview()
}

参考是否符合我的代码?此删除功能是否适用于我

func Delete()
{
    var imgView : UIImageView? = view.viewWithTag(Tags.Tag_imgView.rawValue) as? UIImageView
    var scroll : UIScrollView = view.viewWithTag(Tags.Tag_MainScroll.rawValue) as UIScrollView

    var number : Int = Int(scroll.contentOffset.x / scroll.frame.size.width)
    var page : UIPageControl = view.viewWithTag(Tags.Tag_page.rawValue) as UIPageControl
    page.currentPage = number
    println("\(page.currentPage)")

    if var array : NSArray = NSUserDefaults.standardUserDefaults().objectForKey("ImageArray") as? NSArray
    {
        arrayImage = array.mutableCopy() as NSMutableArray
    }
    page.removeFromSuperview()
    number++
    arrayImage.removeObjectAtIndex(number)
    NSUserDefaults.standardUserDefaults() .setObject(arrayImage, forKey: "ImageArray")
    println("\(arrayImage[number])")
    println("\(arrayImage)")
    NSUserDefaults.standardUserDefaults().synchronize()
    displayImage()
}

根据我的代码,这个删除功能正在为我工作

func Delete()
{
    var imgView : UIImageView? = view.viewWithTag(Tags.Tag_imgView.rawValue) as? UIImageView
    var scroll : UIScrollView = view.viewWithTag(Tags.Tag_MainScroll.rawValue) as UIScrollView

    var number : Int = Int(scroll.contentOffset.x / scroll.frame.size.width)
    var page : UIPageControl = view.viewWithTag(Tags.Tag_page.rawValue) as UIPageControl
    page.currentPage = number
    println("\(page.currentPage)")

    if var array : NSArray = NSUserDefaults.standardUserDefaults().objectForKey("ImageArray") as? NSArray
    {
        arrayImage = array.mutableCopy() as NSMutableArray
    }
    page.removeFromSuperview()
    number++
    arrayImage.removeObjectAtIndex(number)
    NSUserDefaults.standardUserDefaults() .setObject(arrayImage, forKey: "ImageArray")
    println("\(arrayImage[number])")
    println("\(arrayImage)")
    NSUserDefaults.standardUserDefaults().synchronize()
    displayImage()
}