同じUIViewクラスを使用してサウンドを録音して再生したいと思います。このビュークラスでは、プログラムでボタンを追加し、ビューの目的に応じてボタンのテキストを変更したいと考えています。ビューがプレーヤーとして作成されると、再生アイコン(または今のところテキスト)が表示されます。ビューがレコーダーとして作成された場合は、レコードアイコンが表示されます。しかし私は私のUIButtonからビュー内のグローバル変数にアクセスすることはできません。プログラムのuibuttonプロパティからグローバル変数にアクセスする
class AudioPlayerView: UIView {
var isRecorder = false
override init(frame: CGRect) {
super.init(frame: frame)
...
}
let theButton: UIButton = {
let button = UIButton()
if isRecorder {
button.setTitle("▷", for: .normal)
button.addTarget(self, action: #selector(playPauseAudio), for: .touchUpInside)
} else {
button.setTitle("▢", for: .normal)
button.addTarget(self, action: #selector(recordTapped), for: .touchUpInside)
}
button.backgroundColor = .clear
button.layer.cornerRadius = 15.0
return button
}()
あなたはisRecorder変数にアクセスできないと言っていますか? –
はいSyed。まったく。しかし、私はクラスの減速の上に "isRecorder"を転送すると、それは動作します... –
isRecorderの値を変更するだけで、単一のビューを使用して行うことができるように、なぜ記録用と再生用の2つのビューを作成していますか? –