我在很多应用程序上都看到了一个类似下拉按钮,包括Turf Wars,模拟了一个选择器的下拉列表.我需要在我的应用程序中使用相同的功能,但我不太清楚最好的方法是什么.
例:

我想我可以制作两个图像并将它们设置为不同状态的UIButtons背景图像,并让按钮打开一个选择器视图.
任何输入将不胜感激.
竿
我正在使用以下代码向UIPickerView添加标签和视图.
- (UIView *)pickerView:(UIPickerView *)pickerView
viewForRow:(NSInteger)row
forComponent:(NSInteger)component
reusingView:(UIView *)view {
CustomPickerView *customView = [[CustomPickerView alloc] initWithFrame:CGRectMake(0.0, 0.0, 180, 32)];
CustomPickerLabel *pickerLabelLeft = [[CustomPickerLabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 80, 32)];
[pickerLabelLeft setTextAlignment:UITextAlignmentRight];
pickerLabelLeft.backgroundColor = [UIColor clearColor];
[pickerLabelLeft setText:@"1234"];
[customView addSubview:pickerLabelLeft];
return customView;
Run Code Online (Sandbox Code Playgroud)
}
我使用视图的原因是因为我想在此视图中添加两个标签并将其显示在选择器中.CustomPickerView和CustomPickerLabel类包含以下代码,每个代码:
- (void)didMoveToSuperview
{
if ([[self superview] respondsToSelector:@selector(setShowSelection:)])
{
[[self superview] performSelector:@selector(setShowSelection:) withObject:NO];
}
}
上面的代码适用于显示和滚动,但是当我点击标签滚动时,它什么都不做.如果我在标签外面点击,就像拾取器的角落一样,滚轮会转向选择它应该的位置.
任何建议,将不胜感激.
竿
我有一个UITableView与我建立的自定义单元格.单元格有几个标签,一个开始按钮和一个停止按钮,以及一个从按钮触发和停止的NSTimer.
标签显示来自sqllite的数据(通过核心数据),并且计时器针对每个单独的单元单独运行.
这一切都正常,直到我有更多的单元格和细胞重用被触发.此时,每个单元格在其标签中显示正确的数据,但是如果我为第一个单元格启动计时器,那么当它从屏幕滚出时,下一个单元格显示(并随后重新使用前一个单元格)将使其计时器变为好.
我无法弄清楚如何保证每个单元格都有自己的定时器线程和单元重用.
任何帮助,将不胜感激.