【发布时间】:2015-07-23 14:41:29
【问题描述】:
我正在构建一个类似于 snapchat 的应用程序,我们在其中拍摄照片或视频,然后在一定时间后销毁。
我正在相机模块中实现 UIPicker,一旦用户拍照,他们选择收件人看到照片的时间,然后用户发送 1-10 秒后自毁的图像。
如何将 UIPicker 链接到另一个类 NSTimer?
camera.h
@property (strong, nonatomic) IBOutlet UIPickerView *timePicker;
@property (nonatomic, strong) NSArray *pickerData;
picker data in camera.m file:
interface //
{
int secs;
}
@end
- (void)viewDidLoad {
[super viewDidLoad];
self.pickerData = @[@"1 second", @"2 seconds", @"3 seconds", @"4 seconds", @"5 seconds", @"6 seconds", @" 7 seconds", @" 8 seconds", @" 9 seconds", @" 10 seconds"];
self.timePicker.dataSource = self;
self.timePicker.delegate = self;
}
-(long)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
-(long)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return self.pickerData.count;
}
- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return self.pickerData[row];
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
//help here please
}
- (IBAction)next:(id)sender {
//goes to select friends page
}
为用户显示图像的 image.m 文件:此图像应在用户从选择器中选择的时间后销毁。
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if ([self respondsToSelector:@selector(timeout)]) {
[NSTimer scheduledTimerWithTimeInterval:7 target:self selector:@selector(timeout)
userInfo:nil repeats:NO];
}
}
[timeout pops to root view]
我需要让用户在选择器上选择一个时间,然后让 image.m 文件中的图像在该时间后销毁。
用户拍照然后图片下方是用户选择时间然后按next去选择朋友的pickerview。屏幕一半是图片另一半是UIPickerView
【问题讨论】:
-
这两个类如何连接的信息很少,很难说。不知何故,
pickerView didSelectRow ...应该更新image.m中的信息。这是基于我在这里看到的几行代码的猜测。 -
所以我想链接到 NStimer 的选择器数据(秒),那么我们将在选择行方法中放入什么代码
-
@Harry 您没有提供足够的信息,但我想
NSNotificationCenter可以提供帮助,请查看我的答案 -
@Aladin 请看上面我已经提供了我已经实现的所有内容
-
选择时间后是否有类似
done的确认按钮?因为每次用户滚动选择器时都会触发didSelectRow
标签: ios objective-c nsarray uipickerview nstimer