2012-06-03 58 views
0

我有一個非常長的ViewController充滿視圖控件(我放置)。沒有足夠的空間一次顯示所有標籤,文本字段等,所以我想使用UIScrollView(或類似的東西),以便用戶可以向下滾動頁面並查看其餘的控件。但是,我嘗試拖動一個ViewController的ontop上的UIScrollview,然後試圖拖動,但我根本無法拖動屏幕。我能做些什麼來啓用這個「滾動」功能。這不是一個TableView - 只是一個普通的ViewController。如何使用UIScrollView將按鈕放置在屏幕外?

回答

0

您需要在底部設置滾動視圖,然後將所有viewcontrollers粘貼到該頂部。

1

我不知道,如果你的問題在於你是否期望在XCode中進行滾動(你不能)或者當你執行代碼時。

爲了在運行應用程序時滾動視圖,滾動視圖的內容需要大於其框架。 因此,假定該幀是在iPhone上全屏(0,0,320,460),如果你寫:

[self.scrollView setContentSize:CGSizeMake(400, 460)]; 

然後滾動視圖將是可滾動的水平,以顯示剩餘的80個像素。

1

以通常的方式創建您的uibutton,以通常的方式鏈接它。 (創造出口和動作的int .H文件是我目前在做什麼),然後就告訴計算機到哪裏你真的想用它來爲:

myButton.frame = CGRectMake(20, 800, 90, 30); //in viewDidLoad is where I put it 

退房此線程:How to change the position of a UIButton dynamically

注意:
如果您將myButton作爲除scrollView以外的視圖的子視圖,則這不起作用。至少在我的情況下,這不起作用。該按鈕可以看到,但點擊它沒有激活相關IBAction

這工作:

[scrollView addSubview:myButton]; 

雖然似乎有必要也沒有。

0

我相信你正在使用Interface Builder/storyboard來佈置你的內容。請按照下列步驟操作:

  1. 在IB中佈局您的UIScrollView,就像您一樣。在Size Inspector中將其寬度和高度設置爲,比方說320乘460.
  2. 將滾動視圖連接到IB文件作爲IBOutlet .h文件。我將它命名爲scrollView。
  3. 將scrollview的contentSize設置爲大於其框架。例如

    self.scrollView.contentSize = CGSizeMake(320.0f, 1000.0f); 
    
  4. 添加一個UIView滾動查看IB。 UIView的大小應該與scrollview的contentSize相同。

  5. 當在UIView上佈置你的內容時,在Size Inspector中將UIView的Y設置爲-400(或者任何你喜歡偏移的值),你將能夠在UIView中佈局更多的元素。
0

這裏做一個更好的辦法:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[button addTarget:self 
      action:@selector(aMethod:) 
forControlEvents:UIControlEventTouchDown]; 
[button setTitle:@"Show View" forState:UIControlStateNormal]; 
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0); 
[view addSubview:button]; 

我在這裏找到這段代碼:How do I create a basic UIButton programmatically?,發表mahboudz

這基本上是一樣的東西,我把上面的,但確實它所有的編程方式都帶有您應該(尚未嘗試過)的獎勵,例如,可以使用for循環創建多個此類按鈕。

+0

使用循環的多個按鈕:http://stackoverflow.com/questions/2646297/add-a-multiple-buttons-to-a-view-programatically-call-the-same-method-determin – juggler