iOS开发:实现点击常用控件弹出地区选择框(万能方法)

在iOS开发中会遇到一些选择选项的需求,而且点击一个控件弹出一个选择框,选择之后展示到前端,然后再把选择的内容传给后台或者做本地存储。这个需求对于大多数开发者来说可以为小儿科,但是作为一个爱记录的程序猿来说相当可贵,所以还是那句话,只分享给有缘人,大牛可以飘过,不喜勿喷请走开。

随后还会分享实现点击UITextField弹出UIDatePicker日期选择器的博文,本篇博文只分享点击控件弹出选择框的方法实现(点击UIButton或者UILabel弹出选择提示框)。

以下案例使用场景:通过点击UITableViewCell,弹出弹框,然后选择地区,最后给cell上面的控件赋值。具体步骤如下所示。

1、声明一个全局属性,来接收选择之后的地区名称参数

         @property (strong, nonatomic) NSString *changeRegion; //地区名称

2、在UITableView的cellForRowAtIndexPath代理方法里面的操作如下

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)in

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论
可以使用AVAudioRecorder和AVPlayer来实现iOS设备上边录音边播放。具体步骤如下: 1. 配置AVAudioSession,设置播放和录音的类别和模式: ```swift let session = AVAudioSession.sharedInstance() try? session.setCategory(.playAndRecord, mode: .default, options: [.defaultToSpeaker, .allowBluetoothA2DP]) try? session.setActive(true) ``` 2. 创建AVAudioRecorder实例,设置录音参数和文件路径: ```swift let recordSettings = [ AVFormatIDKey: Int(kAudioFormatMPEG4AAC), AVSampleRateKey: 44100, AVNumberOfChannelsKey: 1, AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue ] let audioURL = URL(fileURLWithPath: NSTemporaryDirectory() + "recording.m4a") let audioRecorder = try? AVAudioRecorder(url: audioURL, settings: recordSettings) audioRecorder?.prepareToRecord() audioRecorder?.record() ``` 3. 创建AVPlayer实例,设置播放URL和缓存: ```swift let audioURL = URL(string: "http://example.com/audio.mp3")! let playerItem = AVPlayerItem(url: audioURL) let player = AVPlayer(playerItem: playerItem) player.automaticallyWaitsToMinimizeStalling = false player.play() ``` 4. 在AVPlayer的代理方法中,检查缓存是否够用,如果不够用就暂停AVPlayer,等待缓存: ```swift func player(_ player: AVPlayer, didOutputCueMarkers markers: [AVMetadataItem], at time: CMTime) { let currentTime = player.currentTime() let bufferDuration = CMTimeGetSeconds(player.currentItem?.loadedTimeRanges.first?.timeRange.duration ?? CMTime.zero) let playbackDuration = CMTimeGetSeconds(currentTime) if bufferDuration - playbackDuration < 5 { player.pause() } else { player.play() } } ``` 这样就可以在iOS设备上边录音边播放了。注意,由于网络传输和设备性能的限制,可能会出现播放卡顿或录音失真的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三掌柜666

如果对您有所帮助,请支持一下呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值