programing

단추 사용 안 함

lovejava 2023. 8. 27. 08:48

단추 사용 안 함

단추를 비활성화합니다(UIButton)을 클릭한 후 iOS에서 사용할 수 있습니다.iOS용으로 개발하는 것은 처음이지만 목표 C에 해당하는 코드는 다음과 같습니다.

button.enabled = NO;

하지만 저는 그것을 신속하게 할 수 없었습니다.

다음에 대한 부울 값NO스위프트는false.

button.isEnabled = false

해야 합니다.

다음은 다음에 대한 Swift 문서입니다.UIControlisEnabled소유물.

버튼을 "눌러" 모양 없이 정적으로 유지하려면 다음을 수행합니다.

// 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소유물.

둘 사이의 차이는 다음과 같습니다.

  • isEnabledUIControl(UIButton의 슈퍼 클래스)의 속성이며 활성화/비활성화의 시각적 효과(즉, 회색으로 표시됨)있습니다.

  • isUserInteractionEnabledUIView(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