我在swift中使用HMSegmentedControl(https://github.com/HeshamMegid/HMSegmentedControl)。
当我尝试使用以下功能时
- (void)setIndexChangeBlock:(IndexChangeBlock)indexChangeBlock;
当我使用以下语法时,Xcode找不到他的功能
categoriesView.setIndexChangeBlock {
}
它说“HMSegmentedControl没有名为categoriesView.setIndexChangeBlock的成员。我注意到HMSegmentedControl中不使用块的另一个函数已被Xcode识别。
- (void)setSelectedSegmentIndex:(NSUInteger)index animated:(BOOL)animated;
如何解决?
谢谢!
答案 0 :(得分:2)
使用此
设置阻止categoriesView.indexChangeBlock = { (index) in
if index == 0 {
//Do something
}
}
答案 1 :(得分:0)
setIndexChangeBlock:
方法需要一个块参数IndexChangeBlock
,其defined如下:
typedef void (^IndexChangeBlock)(NSInteger index);
这意味着它需要一个NSInteger
参数。您需要按如下方式调用该方法:
categoriesView.setIndexChangeBlock { (i: Int) -> () in
}
答案 2 :(得分:0)
您可以设置可见的scrollview区域,如:
func segmentedControlChangedValue(segmentedControl: HMSegmentedControl) {
self.scrollView.scrollRectToVisible(CGRect.init(x: UIScreen.main.bounds.size.width * CGFloat(segmentedControl.selectedSegmentIndex), y: (self.scrollView.frame.origin.y), width: UIScreen.main.bounds.size.width, height: (self.scrollView.frame.size.height)), animated: true)
}