我试图获得沿弯曲路径滚动 uitableview 的效果。基本上它就像屏幕一侧的凸出的tableview,就好像它是一个大圆圈的一侧。我不想使用图形效果来扭曲 tableview,因为文本会变得更难阅读。
顶部和底部的项目比靠近中心的对象更靠近屏幕边缘。
如何才能在使用 UIScrollView 时不调用平移手势识别器选择器。
我希望能够在不调用平移手势选择器的情况下在滚动视图中滚动。
这是我的平底锅检测功能:
- (void)panDetected:(UIPanGestureRecognizer *)panRecognizer
{
CGPoint translation = [panRecognizer translationInView:self.view];
CGPoint imageViewPosition = self.draggableImage.center;
imageViewPosition.x += translation.x;
imageViewPosition.y += translation.y;
self.draggableImage.center = imageViewPosition;
[panRecognizer setTranslation:CGPointZero inView:self.view];
}
Run Code Online (Sandbox Code Playgroud)
当我在页面底部使用 UIScrollView 时,我不希望它被调用。
2Tableviews在一个ViewController具有不同大小的单元格高度。当我滚动时view controller,需要同时滚动tableview cell两个表格单元格也需要同时隐藏。
200px height顶部 tableview 中的单元格,50px height底部 tableview。
当我滑动 100px 时,顶部表格单元格滚动 100 px,底部表格单元格应该滚动 25px。
这种平行滚动可能吗?任何建议.. 提前致谢
parallel-processing objective-c uitableview uiscrollview ios
我一直在尝试确定表格视图顶部的第三个单元格。基本上,这意味着从顶部算起的第三个单元格看起来总是与所有其他单元格不同(即文本颜色会发生变化等)。我想既然单元格被重用,我总是能够像这样访问第三个单元格:
if (indexPath.row == 2) {
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,它似乎不是那样工作的。当我继续打印indexPath.row数字时,数字会从 0 一直增加到 12 ......现在这是可以理解的,因为它是 cell row,但是我如何总是从顶部访问第三行。这是我采用的原始方法:
override func scrollViewDidScroll(scrollView: UIScrollView) {
let indexPath: NSIndexPath = self.tableView.indexPathsForVisibleRows![0]
if (indexPath.row == 2) {
// Print or whatever
}
}
}
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能总是从 的顶部访问第三行tableView呢?
谢谢!
我有一个位于嵌套滚动视图中的 UIButton(水平分页滚动视图内的垂直分页滚动视图)。我的问题是当我点击它突出显示的按钮时,它不会触发我将它链接到的 segue。然后我尝试将它链接到我放置断点的 IBAction 函数,当我点击按钮时,我没有点击该断点,所以我的按钮也没有触发 IBActions。
我试过关闭两个滚动视图的延迟内容触摸,但没有用。所做的只是在我点击按钮时立即突出显示按钮,而不是在突出显示之前稍微加权。无论哪种方式,当我点击它时,我的按钮会突出显示,但我的任何出口(segues 或 IBActions)都没有触发,我认为这很奇怪。我在网上发现其他人也有类似问题,但他们的按钮甚至没有突出显示。我的突出显示,所以我知道它从用户那里得到输入。
这是我实例化嵌套滚动视图的方式。主要的水平滚动视图是在我的故事板中创建的,然后在它的 ViewController viewDidLoad 方法中我这样做是为了嵌套垂直滚动视图。垂直滚动视图包含我的按钮。
let readingVC = storyboard!.instantiateViewControllerWithIdentifier("ReadingViewController") as! ReadingRingViewController
readingVC.read = reading.minutesRead
readingVC.goal = reading.minutesGoal
readingVC.selectedDate = selectedDate
readingVC.today = today
let readingView = readingVC.view
let scrollPage2 = UIScrollView(frame: CGRectMake(readingView.bounds.size.width,0,readingView.bounds.size.width, readingView.bounds.size.height))
scrollPage2.addSubview(readingView)
scrollPage2.contentSize = CGSize(width: readingView.bounds.size.width, height: readingView.bounds.size.height*2)
scrollPage2.pagingEnabled = true;
scrollPage2.alwaysBounceVertical = true
scrollPage2.userInteractionEnabled = true
let readingBottomView = storyboard!.instantiateViewControllerWithIdentifier("ReadingBottomViewController").view
let scrollPage2Bottom = UIScrollView(frame: CGRectMake(0,readingView.bounds.size.height,readingBottomView.bounds.size.width, readingBottomView.bounds.size.height*2))
scrollPage2Bottom.addSubview(readingBottomView)
scrollPage2Bottom.contentSize = CGSize(width: readingBottomView.bounds.size.width, height: readingBottomView.bounds.size.height)
scrollPage2.addSubview(scrollPage2Bottom)
scrollPage2.sendSubviewToBack(scrollPage2Bottom)
Run Code Online (Sandbox Code Playgroud)
这是我的按钮所在的 viewController 的代码。我已经将它链接到 IBAction …
我真的如何做一件可能很容易的事情..
我有一个带有一些按钮的 ScrollView。这就是我在滚动视图中创建所有按钮的方式。
var buttonList = [UIButton]()
func createButton() {
let imageArray = fillImageArray()
var lastButtonWidth: CGFloat = 0
for index in 0..<6 {
let frame1 = CGRect(x: ((self.view.frame.size.width / 2) - 27.5) + CGFloat(index * 70), y: 0, width: 55, height: 55 )
let button = UIButton(frame: frame1)
button.setImage(imageArray[index], forState: .Normal)
button.tag = index
button.addTarget(parentViewController, action: #selector(ViewController.buttonClicked(_:)), forControlEvents: .TouchUpInside)
self.scrollView.addSubview(button)
lastButtonWidth = frame1.origin.x
buttonList.append(button)
}
self.scrollView.contentSize = CGSizeMake(lastButtonWidth + 55, 0)
}
Run Code Online (Sandbox Code Playgroud)
我希望当我按下我的一个按钮时,让他居中并正确定位其他按钮。
如果我按 5 我想要这个结果:
按钮 …
我正在 Swift 3.0 中处理一个项目,它在 UIScrollView 中有一个 UITableView 已经设置了它的约束。
要求是在这个 UITableView 中显示一个将从数组返回的歌曲列表,但是这个 UITableView 的大小应该根据数组的大小动态排列,所以我不需要滚动 UITableView 因为我可以看到所有UITableView 中的歌曲(这个 UITableView 在我的 scrollView 里面,所以我可以使用我的 scrollView 在列表中上下移动)。
我将如何实现这一目标?
所以我在屏幕上添加了滚动视图。
但是,我无法上下滚动。
我的滚动视图宽度和大小分别是 414 和 784,而我的内容大小是 scrollView.contentSize = CGSize(width: self.view.frame.size.width, height: 800)
为什么我不能上下滚动?
我该如何解决?
我设置了我的约束,以便在您加载时有一个占据屏幕的图表,但您可以向下滚动以查看更多信息。但是,我可以看到滚动条在移动,而图表没有移动!
var scrollView: UIScrollView {
let scroll = UIScrollView()
self.view.addSubview(scroll)
scroll.snp.makeConstraints { (make) in
make.edges.equalTo(self.view)
}
return scroll
}
var contentView: UIView {
let content = UIView()
self.scrollView.addSubview(content)
content.snp.makeConstraints { (make) in
make.top.bottom.equalTo(self.scrollView)
make.left.right.equalTo(self.view)
make.width.equalTo(self.scrollView)
}
// self.scrollView.contentSize = content.frame.size
return content
}
override func viewDidLoad() {
super.viewDidLoad()
self.contentView.addSubview(self.chart)
self.chart.snp.makeConstraints { (make) in
// http://snapkit.io/docs/
// https://github.com/SnapKit/SnapKit/issues/448
make.top.equalTo(self.contentView)
make.left.right.equalTo(self.contentView)
make.height.equalTo(self.view).offset(-(self.tabBarController?.tabBar.frame.height)!)
}
self.scrollView.contentSize = CGSize(width: self.view.frame.width, height: 3000) // Testing
}
Run Code Online (Sandbox Code Playgroud)
uiscrollview ×10
ios ×8
swift ×6
uitableview ×4
iphone ×3
xcode ×2
autolayout ×1
cell ×1
ipad ×1
nsindexpath ×1
objective-c ×1
snapkit ×1
swift3 ×1
swift4 ×1
uibutton ×1
uislider ×1