2016-12-12 15 views
0

データがない場合は、下側のビューが上に来るように非表示にする必要があります。スイフト2ビューを拡大/縮小する方法は?

私は運がないこのコードを試しました。私を助けてください。

if(dataForScroll==0){ 

     var newFrame:CGRect = self.myScroll.frame; 

    newFrame.size.height = 0; 
    self.myScroll.frame = newFrame 



      } 

答えて

1

Swift 3バージョンの簡単な例では、問題が解決する可能性があります。質問がある場合はお知らせください

@IBOutlet var mainScrollView: UIScrollView! 
@IBOutlet var view1: UIView! 
@IBOutlet var view2: UIView! 
@IBOutlet var view3: UIView! 

var data1 = NSArray() 
var data2 = NSArray() 
var data3 = NSArray() 

func setFrame() 
{ 
    // data = Something you need to get 

    if data1.count == 0 
    { 
     self.view1.frame.size.height = 0 
    } 
    else 
    { 
     // return its actual height you need 
    } 
    if data2.count == 0 
    { 
     self.view2.frame.size.height = 0 
    } 
    else 
    { 
     // return its actual height you need 
    } 
    if data3.count == 0 
    { 
     self.view3.frame.size.height = 0 
    } 
    else 
    { 
     // return its actual height you need 
    } 

    var frame = self.view1.frame 
    frame.origin.y = 5 
    self.view1.frame = frame 

    frame = self.view2.frame 
    frame.origin.y = self.view1.frame.origin.y + self.view1.frame.size.height + 5 
    self.view2.frame = frame 

    frame = self.view3.frame 
    frame.origin.y = self.view2.frame.origin.y + self.view2.frame.size.height + 5 
    self.view3.frame = frame 

    var scrollHeight:CGFloat = 0.0 
    var contentRect:CGRect = CGRect.zero 

    for views in self.mainScrollView.subviews 
    { 
     let subView:UIView = views 
     contentRect = contentRect.union(subView.frame) 
     print(subView.frame.size.height) 
     scrollHeight = scrollHeight + subView.frame.size.height 
    } 

    self.mainScrollView.contentSize = CGSize(width: UIScreen.main.bounds.width, height: scrollHeight + 20) // the "+ 20" reamains the spaces between the views, you can change as per your need 
} 
関連する問題