2015-03-03 54 views
1

我有主頁滾動查看頁面啓用..在那我有SubscrollView和ImageView來顯示圖像..
我想從主滾動視圖中刪除所選圖像..我沒有任何想法如何擺脫滾動視圖選定的ImageView和刪除...這裏是我的代碼...
刪除ImageView從SubScrollView在Swift

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() 
    } 
}` 

回答

1

按我這個代碼刪除功能爲我工作

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() 
} 
2

具有u tryed這一個..

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

HERE是參考