단추 사용 안 함
단추를 비활성화합니다(UIButton
)을 클릭한 후 iOS에서 사용할 수 있습니다.iOS용으로 개발하는 것은 처음이지만 목표 C에 해당하는 코드는 다음과 같습니다.
button.enabled = NO;
하지만 저는 그것을 신속하게 할 수 없었습니다.
다음에 대한 부울 값NO
스위프트는false
.
button.isEnabled = false
해야 합니다.
다음은 다음에 대한 Swift 문서입니다.UIControl
의isEnabled
소유물.
버튼을 "눌러" 모양 없이 정적으로 유지하려면 다음을 수행합니다.
// Swift 2
editButton.userInteractionEnabled = false
// Swift 3
editButton.isUserInteractionEnabled = false
기억:
당신의IBOutlet
는 --> 입니다.@IBOutlet weak var editButton: UIButton!
위의 코드가 들어갑니다.viewWillAppear
이 작업은 다음과 같습니다.
@IBAction func pressButton(sender: AnyObject) {
var disableMyButton = sender as? UIButton
disableMyButton.enabled = false
}
IBAction은 스토리보드의 버튼에 연결됩니다.
버튼을 콘센트로 설정한 경우:
@IBOutlet weak var myButton: UIButton!
그런 다음 버튼 이름에 . 표기법을 사용하여 활성화된 속성에 액세스할 수 있습니다.
myButton.enabled = false
Swift 3에서 버튼을 비활성화합니다.
yourButton.isEnabled = false
구글에서 "버튼 비활성화"를 검색했지만 미묘한 사용 사례가 더 많을 수도 있습니다.
시각적 효과로 비활성화: 다른 사람들이 말했듯이 버튼을 누르는 것을 방지하고 시스템이 자동으로 비활성화된 것처럼 보이게 합니다.
yourButton.isEnabled = false
시각적 효과 없이 사용 안 함:당신은 정상적으로 보여야 하지만 터치에 반응하여 좋아요 버튼을 사용하지 않는 경우에 버튼을 사용하고 있습니까?이거 먹어봐요.
yourButton.userInteractionEnabled = false
비활성화하지 않고 숨기기:이 접근 방식은 버튼을 비활성화하지 않고 숨깁니다(보이지 않지만 계속 탭할 수 있음).
yourButton.alpha = 0.0
제거: 보기가 완전히 제거됩니다.
yourButton.removeFromSuperView()
단추 뒤에 있는 항목을 누릅니다.두 개의 버튼이 쌓여 있는데 상단 버튼이 없는 것처럼 일시적으로 작동하기를 원하십니까?위쪽 단추가 다시 필요하지 않으면 제거합니다.만약 당신이 그것이 다시 필요하다면, 그것의 높이나 폭을 0으로 축약해 보세요!
스위프트 5 / 스위프트 UI
요즘은 이렇게 되어 있습니다.
Button(action: action) {
Text(buttonLabel)
}
.disabled(!isEnabled)
다음을 사용하여 단추를 활성화/비활성화할 수 있습니다.isEnabled
또는isUserInteractionEnabled
소유물.
둘 사이의 차이는 다음과 같습니다.
isEnabled
UIControl(UIButton의 슈퍼 클래스)의 속성이며 활성화/비활성화의 시각적 효과(즉, 회색으로 표시됨)가 있습니다.isUserInteractionEnabled
UIView(UIControl의 슈퍼 클래스)의 속성이며 시각적 효과는 없지만 목적을 달성합니다.
용도:
myButton.isEnabled = false // Recommended approach
myButton.isUserInteractionEnabled = false // Alternative approach
스위프트 4에서 세그를 위한 버튼이 설정되어 있다고 가정해 보겠습니다.IBAction
이것처럼.@IBAction func nextLevel(_ sender: UIButton) {}
앱 내에서 발생하는 다른 작업(예: 타이머, 게임 플레이 등)이 있습니다.segue 버튼을 비활성화하는 대신 다른 작업이 수행되는 동안 앱을 손상시키지 않고 해당 segue를 사용할 수 있는 옵션을 사용자에게 제공할 수 있습니다.방법:
var appMode = 0
@IBAction func mySegue(_ sender: UIButton) {
if appMode == 1 { // avoid crash if button pressed during other app actions and/or conditions
let conflictingAction = sender as UIButton
conflictingAction.isEnabled = false
}
}
다음 기간 내에 다른 조건이 있을 수 있습니다.if appMode == 0
및/는if appMode == 1
그것은 여전히 발생할 것이고 충돌하지 않을 것입니다.mySegue
단추를 채우다따라서 충돌을 방지합니다.
Swift 4에서는 코드를 사용하여 버튼을 비활성화할 수 있습니다.
@IBAction func yourButtonMethodname(sender: UIButon) {
yourButton.isEnabled = false
}
이 작업을 수행하려면 다음과 같이 하십시오.
yourButton.isEnabled = false
UI 버튼 외에 아웃렛을 만들어야 합니다.
여기에 있는 다른 답변을 기반으로 합니다.더블 탭을 방지하기 위해 몇 초 동안 버튼을 비활성화하고 싶었습니다.스위프트 5 버전, xcode 13.4.1은 이것을 좋아하고 경고나 오류가 없습니다.
@IBAction func saveComponent(_ sender: Any) {
let myButton = sender as? UIButton
myButton?.isEnabled = false
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(2000))
{
myButton?.isEnabled = true
}
}
언급URL : https://stackoverflow.com/questions/25524638/disable-a-button
'programing' 카테고리의 다른 글
div에 1px 테두리를 추가하면 div 크기가 증가합니다. 원하지 않습니다. (0) | 2023.08.27 |
---|---|
powershell v2 원격 - 암호화되지 않은 트래픽을 활성화하는 방법 (0) | 2023.08.27 |
측정 시 사용자 정의 보기 설명 (0) | 2023.08.27 |
Rest api - 단일 리소스 필드 업데이트 (0) | 2023.08.27 |
jquery를 사용하여 스크롤바가 없는 브라우저 뷰포트의 높이와 너비를 가져오시겠습니까? (0) | 2023.08.27 |