Cursos Senac Gratis Bh

Keuka College, Keuka Park - E aí pessoal, beleza?! Hoje a gente vai continuar a nossa aula. No último vídeo ficou faltando a gente arrumar um jeito de concluir as nossas tarefas, então a gente vai fazer isso hoje. Bom, só um comentário: teve um... primeiro que eu estou usando o beta 2, que foi lançado na última segunda-feira, e o teclado não está aparecendo. Está com algum bug. Eu não sei se é só comigo, mas está dando este bug, mas de qualquer jeito não vai atrapalhar a gente para esta aula não. Bom, ficou faltando uma coisinha no último vídeo: se eu deletar este registro ele deleta aqui, mas se eu fechar e abrir de novo ele ainda vai estar lá. Eu vou mostrar porque e a gente vai arrumar isto. Aqui ó... Ele está aqui ainda, eu posso deletar que ele vai voltar. No momento que a gente deleta o registro, eu esqueci de chamar o "save", lá no nosso contexto. Aqui eu estou deletando ele da nossa lista de tarefas, mas eu não estou chamando aquele método "save", que é o mesmo que eu chamo quando eu insiro uma nova tarefa. Só que em vez de eu repetir este código aqui, eu vou aproveitar para arrumar... Eu vou criar um método que vai chamar "saveContext", que vai fazer isto aqui. Vou declarar ele aqui em baixo... Pronto. Agora, o que eu tenho que fazer é chamar ele aqui em baixo. Então pronto, depois que eu deletar eu chamo o método para salvar o contexto. Vamos testar, vamos ver se resolveu. Agora eu vou excluir o registro, vou fechar, se eu abrir de novo ele não vai estar lá mais. Não está aqui mais. Pronto. Bom, agora o que a gente vai fazer? A gente precisa... a gente precisa mudar a forma que a gente implementou, porque do jeito que está aqui... (Esta versão está dando muitos erros no simulador, não sei porque.) Bom, aqui qual é a ideia: quando a gente fizer o swipe para a direita, a gente conclui a tarefa, e quando fizer para a esquerda a gente deleta a tarefa. Mas a gente não vai usar mais esta opção de excluir aqui. A gente vai criar a nossa própria. Para fazer isto, não existe uma solução nativa tão fácil para fazer isto, então a gente vai precisar criar a nossa própria célula e a gente vai implementar tudo. Bom, eu vou criar um novo arquivo... Vai ser Cocoa Touch Class, e ele vai herdar de "UITableViewCell". Eu vou chamar ele de "TaskTableViewCell". Vou salvar ele aqui... Pronto! Primeiro, eu vou tirar isto aqui, que a gente não vai usar isto por enquanto. Bom, eu criei a minha célula só que se eu rodar agora não vai fazer diferença nenhuma. Porque? Porque eu não falei para a minha TableView que eu quero usar aquela célula como a minha célula customizada. Então eu tenho que fazer isto... A gente vai vir no "viewDidLoad", nós vamos colocar o código que faz isto aqui. "tableView.registerClass"... aí eu tenho que passar o nome da minha classe, vou chamar de "TaskTableViewCell.classForCoder()"... Aqui eu estou passando a classe e aqui eu vou passar o nome do identificador que eu uso para poder criar as célular. Feito isto, eu preciso arrumar algumas coisas aqui para baixo. A primeira, é no método que eu crio a minha célula. Em vez de usar... (Só fazer um pouco mais de espaço aqui...) Em vez de usar UITableViewCell, eu vou usar a minha: TaskTableViewCell. Eu vou copiar isto aqui... No nosso método de configurar a célula, a gente vai mudar o parâmetro para ser do nosso tipo e no método do delegate do CoreData aqui a gente precisa fazer um "cast", na hora de passar para o nosso método. Beleza! Se eu rodar agora, eu imagino que ele já vai... que ele já vai pegar a nossa célula. Pronto! Ele já está pegando a nossa célula. Ela está branca porque ela não foi configurada. A gente não configurou a cor dela nem nada. Bom, o que a gente vai fazer: primeira coisa, a gente vai voltar agora na nossa célula e a gente vai setar as cores. Eu vou criar um novo arquivo que a gente vai criar algumas extensões. No Objective-C tinha um negócio que chamava categoria, que era a mesma ideia do que eu vou mostrar aqui, que servia para você extender uma classe. Então a gente vai fazer isso usando o extension aqui no Swift. O padrão de nome, pelo menos no Objective-C era assim, eu não sei ainda exatamente qual é a convenção melhor para isto, mas eu vou adotar a mesma forma e depois, mais pra frente se eu ver que tem uma forma melhor, eu falo para vocês. Eu vou chamar aqui de "TaskManagerColors". Vou arrastar ele aqui para cima. Bom, eu vou copiar o código de onde eu já implementei, só para agilizar, porque não tem nada de mais nesta classe. Bom, só explicar rapidinho: aqui eu estou falando que eu estou extendendo a classe UIColor e eu criei alguns métodos de classe aqui, que eu não preciso instanciar esta classe para poder chamar estes métodos, e eu só estou retornando uma cor. Aí eu criei alguns específicos aqui que a gente vai usar na nossa aplicação. Bom, agora eu posso voltar lá na minha célula e eu vou setar algumas cores. Então eu vou colocar aqui... "backgroundColor"... aí eu vou chamar um daqueles métodos que eu criei lá na minha extensão, que vai ser a cor aqui da parte da frente da nossa aplicação, vai ser a view e as células da TableView. E eu vou trocar também a cor do texto do label. Vai ser "cellFontColor". Assim fica interessante usar esta extensão, porque se eu resolver mudar as cores da minha aplicação eu posso mudar só nesta classe, então ele já vai aplicar para todo lugar que eu usar estes métodos. Bom, vamos rodar aqui só para ver se... Bom, ele já pegou a cor... Está um pouco diferente aqui, porque no Storyboard eu não tinha setado estas mesmas cores que eu coloquei. Então eu vou arrumar na minha ViewController, eu vou setar pelo código aqui para usar aquelas cores. Eu vou no "viewDidLoad", eu vou colocar aqui estas mesmas cores que a gente usou lá na nossa... naquela nossa classe. Então, tableview color, vai receber... acho que é esta... E a gente precisa setar também a nossa view.backgroundColor, que vai ser... Na verdade, aqui é background... Pronto, vamos ver se resolveu. Pronto, agora está certinho. Agora, vamos voltar na nossa célula que a gente vai implementar algumas coisas lá. O que a gente... a gente precisa interceptar os gestos que vão ser feitos na célula. O swipe para a direita ou para a esquerda, então a gente precisa fazer este controle aqui dos gestos. Eu vou criar um "Gesture recognizer" aqui que é o "pan". O "pan" é quando você segura o dedo e arrasta. Eu vou colocar aqui... target: self, e action é o nome do método que eu vou executar quando este gesto acontecer. Eu vou passar para o meu gesto que o delegate dele é a minha classe... E eu vou adicionar este recognizer à minha classe. Bom, agora eu vou implementar este método que eu declarei ali... "handlePan"... recognizer: UIPanGestureRecognizer... Eu vou só colocar um "println" para a gente testar. Bom, se a gente rodar aqui agora, quando eu fizer o swipe ele vai rodar aquele método. Só que o que acontece: quando eu faço o swipe para baixo ou para cima, ele está executando este método também, e com isso a gente perdeu o scroll. Então a gente precisa resolver isso. A gente só quer executar... a gente só quer interceptar este evento quando for um swipe para a esquerda ou para a direita. Então vamos resolver isso. A gente vai criar um método aqui, que é o "gestureRecognizerShouldBegin". Este método, a gente vai retornar se a gente quer interceptar o método ou não. Se a gente quer interceptar este evento ou não. Então eu vou criar aqui uma constante só para ajudar a gente... que eu vou fazer só um "cast" aqui. Aqui eu vou capturar para que direção que o gesto foi, se ele foi para esquerda, para direita, ou para cima e para baixo. Então eu estou pegando a posição. Bom, agora... Só colocar um comentário aqui... Isto aqui: o "x" é o quanto que ele moveu horizontalmente. E o "y" é quanto que ele mexeu verticalmente. Então, se o "x" for maior do que o "y" quer dizer que ele mexeu horizontalmente. Então neste caso eu vou retornar "true". Quer dizer que eu quero interceptar este evento. Caso contrário, eu retorno "false". Se eu rodar de novo, agora a gente continua com o nosso scroll, e se eu rodar... se eu fizer o gesto horizontalmente, ele vai executar o nosso método. Bom, eu vou deixar o... Ah tá, só uma observação: agora o nosso "delete" parou de funcionar. Aquele que a gente tinha quando a gente fazia o swipe, porque a gente está interceptando o evento, então o código que chama aquele botão de "delete" não é executado internamente, porque a gente interceptou o evento aqui no meio. Eu vou deixar para o próximo vídeo a gente terminar isto, porque vai dar um certo trabalhinho fazer isso tudo. Eu já vou liberar os dois vídeos de uma vez, então já está disponível o próximo vídeo. Pode olhar na descrição do vídeo que vai estar lá. Bom, espero que vocês tenham gostado. Até mais, pessoal!.

Cursos senac gratis bh art 215 codigo procesal penal chubut Parintins monografia pronta direito empresarial. Coronel Fabriciano cursos de graduacao bons Trabalho de pesquisa, literatus cursos tecnicos Trabalhos Matemáticos, jejum para exame de sangue hiv Monografia, do que trata o artigo 477 da clt Declaração Pessoal. Banco de dados gratuito art 5o v e x cf cursos senac gratis bh Sinop proposta de redacao artigo de opiniao 2020. Cursos faculdade helena antipoff Trabalhos Matemáticos Balneário Camboriú artigos para festa asa norte brasilia, art 137 abs 5 wrv.

São José do Rio Preto:

Molly Dixon, Livingston: Bronx. Passo Fundo: Stern College for Women, Murray Hill, Manhattan; 2006.

Gordon Monroe, Cayuga. Breves: Studio Maestro; 2016.

Holly McCall, York Avenue zip 10075. Guarapari: The Debbie Friedman School of Sacred Music; 2011.

inserted by FC2 system