簡體   English   中英

UIslider滾動和TableView滾動iOS

[英]UIslider scroll and tableview scroll ios

這是我的場景,我有一個UIslider和一個Tableview,我需要使用滑塊值滾動tableview

我認為使用UIScrollView類中的函數可以實現此目的。

在滑塊的@IBAction方法中提供以下代碼:

@IBAction func setOffset(sender: AnyObject) {
    let slider = sender as! UISlider
    let y = tableView.contentSize.height * CGFloat(slider.value)
    tableView.scrollRectToVisible(CGRect(origin: CGPointMake(0,y), size: tableView.frame.size), animated: true)
 }

請注意,滑塊范圍應為0-1

在.h文件中將UISlider定義為

UISlider *slider;

這里在viewdidload中添加

slider = [[UISlider alloc] initWithFrame:frame];
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
[slider setBackgroundColor:[UIColor clearColor]];
slider.minimumValue = 0.0;
slider.maximumValue =5;
slider.continuous = YES;
slider.value = 25.0;
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2);
slider.transform = trans;
[slider setBackgroundColor:[UIColor clearColor]];
[slider setThumbImage:[[UIImage imageNamed:@"XYZ.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
slider.translatesAutoresizingMaskIntoConstraints = YES;
[temp addSubview: slider];

定義方法滑塊動作

-(void)sliderAction:(id)sender{NSIndexPath* indexPath1 = [NSIndexPath indexPathForRow:[(UISlider *)sender value] inSection:0];
[yourtableview selectRowAtIndexPath:indexPath1 animated:NO scrollPosition:UITableViewScrollPositionMiddle];
}

在cellforrowatindexpath中將此放在最后

UIView *selb = [[UIView alloc] initWithFrame:CGRectZero];
    [selb setBackgroundColor:[UIColor colorWithRed:255.0/255.0 green:236/255.0 blue:179/255.0 alpha:1]];
    cell.selectedBackgroundView = selb;

在numberofrowsinsection數組中是行數

slider.maximumValue = [array count];

多數民眾贊成在這里很好,所以最終結果將像您移動滑塊一樣,表格視圖隨指定顏色的單元格一起移動

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM