我想在單個UITableview中添加水平滾動和垂直滾動。UITableview中的水平和垂直scrollview ios
我想我的水平最好的,但我沒有得到解決。任何人都可以請幫我在這裏。
所有的解決方案,讚賞。
我想在單個UITableview中添加水平滾動和垂直滾動。UITableview中的水平和垂直scrollview ios
我想我的水平最好的,但我沒有得到解決。任何人都可以請幫我在這裏。
所有的解決方案,讚賞。
是您可以做到這一點.. 爲此,您需要在每個單元格內添加scrollView
並調整其內容大小,以便它可以水平滾動。 讓我給大家簡單介紹你怎麼能如果您正在使用自動版式的使用,你應該插入TableView中的內容查看的細胞一個UIScrollView,並給他們約束(.Top .Trailing .Bottom .Leading)
,所有的這些限制有constant = 0
做..
。
然後在此視圖中添加其他UIView
並設置您爲scrollView
設置的相同約束。這會告訴你紅色的約束,表明這些約束是模棱兩可的,但不用擔心,只需控制從這個視圖畫出你的光標到滾動視圖的父視圖,並設置相等的寬度和相等的高度。當你完成這個請更改priority of equal width constraint from 1000 to 720
。 現在最後在上面的UIView
中添加實際內容視圖,並在此視圖中插入想要插入的任何內容,它可能會超出其父視圖的邊界。當完成添加對象時,只需像上面提到的(.Top .Trailing .Bottom .Leading)
那樣使用相同的常量,但是這次也應該提供寬度約束。
此寬度約束將實際上充當約束高度。您可以稍後更改大小,將此寬度約束設置爲IBOutLet,然後以編程方式調整scrollContent寬度。
良好做法,你應該爲你的TableViewCell
在每個單元是可以添加滾動一個CustomClass
。
您需要創建自定義單元格與UICollectionView裏面放委託,數據源從您的控制器。
然後在控制器中執行UICollectionViewDelegate,UICollectionViewDatasource方法。 要識別當前顯示的單元類中的哪個單元格正在創建屬性,例如tableViewIndexPath您可以在中設置tableView willDisplay單元格。 我覺得它對你有所幫助。
這將作爲您的requirements.Please試試這個。
#pragma mark -- Table view delegate and datasource --
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellid = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellid];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellid];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
self.tblHistory.showsHorizontalScrollIndicator = NO;
self.tblHistory.showsVerticalScrollIndicator = NO;
if (indexPath.row == 0) {
UIScrollView *scrollViewFood = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, cell.frame.size.width, 44)];
scrollViewFood.pagingEnabled = YES;
UILabel *lblFood;
NSInteger numberOfFoods = arrFoods.count;
CGFloat xOrigin = 0;
for (int i = 0; i < numberOfFoods; i++) {
NSString *strNames = [arrFoods objectAtIndex:i];
CGSize textSize=[strNames sizeWithAttributes:
@{NSFontAttributeName: [UIFont boldSystemFontOfSize:14.0]}];
xOrigin = CGRectGetMaxX(lblFood.frame);
lblFood = [[UILabel alloc] initWithFrame:CGRectMake(xOrigin, 0, textSize.width + 10, 44)];
lblFood.text = strNames;
lblFood.font = [UIFont boldSystemFontOfSize:14.0];
lblFood.textAlignment = NSTextAlignmentCenter;
lblFood.backgroundColor = [UIColor clearColor];
[scrollViewFood addSubview:lblFood];
}
scrollViewFood.contentSize = CGSizeMake(lblFood.frame.size.width + xOrigin + 10,44);
scrollViewFood.showsHorizontalScrollIndicator = NO;
scrollViewFood.showsVerticalScrollIndicator = NO;
scrollViewFood.delegate=self ;
[cell.contentView addSubview:scrollViewFood];
}else if (indexPath.row == 2){
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, cell.frame.size.width, 44)];
scrollView.pagingEnabled = YES;
scrollView.contentSize = CGSizeMake(cell.frame.size.width , 100);
[cell.contentView addSubview:scrollView];
}
return cell;
}
您根據需要更改標籤的高度,寬度。
它是否適合你? – Sanjukta
對於UITableView中更好地理解滾動,你可以按照這個兩個環節
我希望它可以幫助你更好地瞭解並熟悉的UITableViewDelegate。
您需要通過創建一個自定義的scrollView並將其放在下面的代碼中。在Storyboard或其他方面,使用這個自定義的scrollView類。然後TableView和Scroll View將同時滾動。您需要這樣做,因爲ScrollView的gestureRecognizer委託不能從您的ViewController訪問,它必須從ScrollView類本身通過繼承它的子類獲得。
- (BOOL)gestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UISwipeGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
我盡我最好的水平,但我沒有得到解決方案。你可以顯示代碼 –
我的代碼是完全錯誤的,我刪除它。你有什麼建議嗎? –
tableViewCell的第1行根據您的需要採取另一個集合視圖或TableView。主tableView有垂直滾動和你的收藏/ tableview滾動水平.. –