2014-11-24 15 views
-1
@IBOutlet weak var scrollView: UIScrollView! 
@IBOutlet weak var view1: UIView! 

override func viewDidLoad() { 
scrollView.contentSize = CGSizeMake(screenWidth*3, screenHeight)//this one works 
view1.frame = CGRectMake(100,100,400,400)//this one not working 
} 

它是viewdidload方法沒有定位UIView,因爲我希望?爲什麼scrollView.frame = CGRectMake()不工作

廠景是滾動視圖的子視圖, .contentSize作品了滾動 但我不能用.frame = CGRectMake()

任何幫助,請兩個位置滾動視圖和廠景。非常感謝!

+0

的'contentSize'和內容的'frame'(包括它的大小)是兩個不同的東西。他們不需要彼此同步。 – holex 2014-11-24 15:44:07

+0

但如何定位scrollview和view1? – PeiweiChen 2014-11-24 15:49:08

+0

我想到viewDidLoad方法可能是源代碼問題。 – PeiweiChen 2014-11-24 16:03:11

回答

0

佈局完成後viewDidLoad

您還應該子類viewDidLayoutSubviews並在那裏添加您的「自定義」佈局(即設置view.frame)。

+0

倍率FUNC viewDidLayoutSubviews(){ super.viewDidLayoutSubviews() view1.frame = CGRectMake(100,100,400,400) } //它不添加此代碼 – PeiweiChen 2014-11-25 00:45:17

+0

我拖動廠景從對象庫中成滾動視圖工作後(在綱要文件中),這會使我的view1自動成爲scrollview的子視圖嗎? – PeiweiChen 2014-11-25 00:51:04

+0

嗨Holex,現在它與viewDidAppear()一起工作,但是當我滾動滾動視圖時,它縮小到它在故事板中設置的內容。 – PeiweiChen 2014-11-25 01:08:50

0

您可以在故事板直接更改值,在更換X和Y值「顯示尺寸檢查」的UIScrollView元素

Replace X and Y coordinate

UPD: 改變viewDidLoad位置沒有任何工作,但加入UIButtonTouch Up Inside工作正常。好像你不能改變viewDidLoad

@IBOutlet weak var btn: UIButton! 
    @IBAction func btnClicked(sender: AnyObject) { 
     scrollView.frame.origin = CGPointMake(100, 100) 
    } 

UPD2原點位置: 以編程方式創建佈局,請參閱代碼示例如下:

override func viewDidLoad() { 
     super.viewDidLoad() 
     let scrollView = UIScrollView(frame: CGRectMake(100, 100, 400, 400)) 
     scrollView.backgroundColor = UIColor.redColor() 

     let uiView = UIView(frame: CGRectMake(110, 110, 200, 200)) 
     uiView.backgroundColor = UIColor.grayColor() 

     self.view.addSubview(scrollView) 
     self.view.addSubview(uiView) 
    } 
+0

我需要在代碼中設置佈局。 – PeiweiChen 2014-11-25 00:28:25

+0

用代碼示例更新了我的答案,如何以編程方式設置佈局。 – 2014-11-25 08:50:55