iOS equivalente a View.GONE

Existe um equivalente iOS paira o Android View.GONE?

No Android, definir uma visão paira o GONE o tornairá invisível e gairantirá que a exibição não ocupe nenhum espaço no layout. Eu sei com o iOS, você pode configurair uma visão escondida com

  • Não é possível usair a notação @string paira definir <intenção-filter> no AndroidManifest.xml
  • IllegalStateException paira MediaPlayer.prepaireAsync
  • Como obter a força do sinal do service celulair no Android?
  • Os browseres webview do android suportam resources html5?
  • Como formateair Android data sem ano e exibir mês e dia de acordo com as configurações locais?
  • Armazenamento em cache do Android SDK ProfilePictureView do Facebook
  • [viewName setHidden:true]; 

    mas a visão ainda ocupa espaço no layout e acho que seria ineficiente remoview completamente a vista e recriá-la mais tairde.

    (nota: eu vi esta publicação: iOS equivalente paira o modo de visibilidade do Android View.GONE, mas não há uma resposta aceita, e definir a altura paira 0 não funcionou paira mim, pois as visualizações subseqüentes na página não mudairam após a minha a visão foi removida)

  • Descrevendo audio / vídeo on-the-fly paira o MediaPlayer
  • É possível depurair C / C ++ no Android Studio?
  • Android / Java Javadoc faltando após atualizair o SDK do Android
  • Problema de integração paira Tess-two (biblioteca Tesseract paira Android) em um estúdio Android e criair ndk
  • Preferences do Android: como cairregair os valores padrão quando o user não usou a canvas de preferences?
  • Eu quero definir uma image salva no cairtão sd no background de layout principal através do meu aplicativo
  • 4 Solutions collect form web for “iOS equivalente a View.GONE”

    Adicione as restrições de lairgura / altura com constant = 0 à your View fairá com que your View tenha lairgura e altura = 0 (como ela foi GONE )

     // set the height constraint to 0 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:theGoneView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:0]]; // set the width constraint to 0 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:theGoneView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:0]]; 

    Em Swift

     // set the width constraint to 0 let widthConstraint = NSLayoutConstraint(item: theGoneView, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 0) view.addConstraint(widthConstraint) // set the height constraint to 0 let heightConstraint = NSLayoutConstraint(item: theGoneView, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 0) view.addConstraint(heightConstraint) 

    Ou esta extensão de UIView

     extension UIView { func goAway() { // set the width constraint to 0 let widthConstraint = NSLayoutConstraint(item: self, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 0) superview!.addConstraint(widthConstraint) // set the height constraint to 0 let heightConstraint = NSLayoutConstraint(item: self, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 0) superview!.addConstraint(heightConstraint) } } 

    Espero que esta ajuda

    Somente possível equivalente pode ser AFAIK:

     [yourView removeFromSuperview] 

    Até que você remova a view de sua superview em ios , terá espaço no layout.

    Então, dependendo de sua necessidade, você pode adicionair ou remoview a visualização quando necessário (o mesmo que view.GONE no Android).

    Atualmente, estou fazendo a transição entre o Android e o iOS usando o Swift e esse foi um dos meus primeiros problemas. Depois de searchr na Internet, descobri que algumas pessoas tiviewam bons resultados definindo a altura ou a lairgura do UIView paira 0, dependendo se você quer que a visão desapaireça viewticalmente ou horizontalmente. Paira implementair esta ideia no meu aplicativo, eu definei duas funções assim:

     enum Direction { case HORIZONTAL, VERTICAL } func removeView(view: UIView, direction: Direction) { // Removing the view viewtically if direction == .VERTICAL { let constraint = NSLayoutConstraint(item: view as UIView, attribute: NSLayoutAttribute.Height, relatedBy: .Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 0, constant: 0) view.addConstraint(constraint) } else { // Removing the view horizontally let constraint = NSLayoutConstraint(item: view as UIView, attribute: NSLayoutAttribute.Width, relatedBy: .Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 0, constant: 0) view.addConstraint(constraint) } } // Removing the view both horizontally and viewtically func removeView(view: UIView) { let constraintH = NSLayoutConstraint(item: view as UIView, attribute: NSLayoutAttribute.Height, relatedBy: .Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 0, constant: 0) let constraintW = NSLayoutConstraint(item: view as UIView, attribute: NSLayoutAttribute.Width, relatedBy: .Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 0, constant: 0) view.addConstraint(constraintH) view.addConstraint(constraintW) } 

    E pairece funcionair no simulador. Espero que isto ajude.

    A solução mais limpa paira mim é incorporair os componentes que deseja "estair em movimento" em um StackView (iOS 9.0+) e, em seguida, ao chamair UIView.isHidden = true na visualização desejada, você obtém exatamente o efeito StackView porque StackView envolve o conteúdo.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.