2013-03-06 49 views
0

我是新來的iOS編程,也許我不完全瞭解UIScrollView。從我研究的內容來看,製作滾動視圖的所有方法都包括將UIViewUIImageView嵌入到UIScrollView中。但是,我不知道是否有辦法直接拖動對象(UILabel,UIButton ...)到UIScrollView。如果UIScrollView的大小設置爲大於屏幕,則UIScrollView上的所有內容都可滾動。再次,這就是我所有的想法,我沒有找到任何證實或否認這一點的帖子。我認爲如果可能的話,這是設置可滾動屏幕的最簡單方法。爲什麼我不能直接添加東西到UIScrollView?

如果這是不可能的,任何人都可以指向一個簡單的方法來滾動一長串UIButton s(只有垂直)?我發現很多教程,但大多數用於滾動UIImageView,我不能採用包含UIButton s列表的UIView的方法。非常感謝您的幫助。

我處於iOS 5和故事板模式。

回答

0

Scrollview的是偉大的documentsimageswebviews等..

但對於鋪設UI這是一個有點疼痛。

如果你只是縱向排列buttons那麼你可能想看看使用UITableView來管理你的佈局。

UITableView不僅僅是顯示數據列表。

如果您想堅持使用scrollView,那麼您可以創建一個新的UIView nib文件並使其成爲您希望的全尺寸。將所有按鈕拖入其中,然後使用代碼將此UIView放入您的scrollView中。

這樣你用IB拖動按鈕來完成佈局,但仍然使用代碼將所有這些buttons等放入scrollview

+0

爲什麼我不希望使用的原因'UITableView'是,我不能直接添加動作(觸摸)的細胞和我搜索比更復雜的是我應該做的,如果我只是要滾動的解決方案UIVIew中的按鈕列表。 – zyl1024 2013-03-06 14:21:06

+0

然後使用我建議的第二個選擇。 – Fogmeister 2013-03-06 14:21:52

+0

@ zyl1024將觸摸添加到單元格實際上是微不足道的。只需阻止單元格選擇並在表格中添加一個抽頭識別器。 – Sulthan 2013-03-11 15:06:01

2

因爲UIImageViewUILabelUIButtonUIView一個後代,您可以添加這些類全光照addSubview:方法的實例。

此外,您需要正確設置您的意見的框架。

如果您希望可滾動內容大小大於屏幕大小,那麼您需要將scrollView.contentSize設置爲所需的值。

1

的原因。案例UILabel,UIButton ...是subClassUIView。你可以添加UIViewScrollView,你也可以添加它們,因爲它也來自UIView

使用View來包含button可讓您輕鬆管理按鈕。

您應該計算按鈕的所有框架。如果它們具有相同的佈局功能,則需要使用tableView

+0

爲什麼我不希望使用的原因'UITableView'是,我不能直接添加動作(觸摸)的細胞,我搜索的解決方案比更復雜,我應該怎麼做,如果我只是想滾動列表'UIVIew'中的按鈕。 – zyl1024 2013-03-06 14:19:42

+0

我明白了。好吧,你可以找到一些關於實現tableView原理的文章。 它使用Flyweight模式,減少內存投射。 你可以做同樣的事情在你的滾動視圖,或者您添加了大量的按鈕吧,內存警告容易顯現。 – junkor 2013-03-07 01:54:47

0

在情節串連圖板我建議不添加的UILabel等直接向滾動視圖。它可以做到,但我發現在滾動視圖的包含視圖中直接只有一個視圖(或非常直觀)更容易。尤其是當單個視圖大於屏幕時。

這就是爲什麼我建議箱一個普通的UIView對象。使用自由式大小在IB中繪製UIView。這應該是你唯一的直接子視圖滾動視圖。在該視圖中,您可以輕鬆安排和重新排列所有UI項目。但要確保你不使用自動佈局,您的視圖不調整subvies和滾動視圖不自動調整子視圖。否則,您認爲應該比屏幕更大的視圖可能會靜止進入屏幕(分別可用的窗口部分)尺寸。

相關問題