Thursday 23 November 2017

Uitableviewcell Accessory Disclosure Indicator Forex


Quando uma célula em um UITableView leva a uma subvisão, pode ser útil ter algum contexto visual adicional. Um indicador de divulgação em um UITableViewCell é um pequeno chevron exibido na borda direita para indicar visualmente que ele leva a algum lugar. Por exemplo, dê uma olhada na pasta 8220History8221 no Mobile Safari Bookmarks: Nifty, right Here8217s como fazê-lo: 8211 (UITableViewCell) tableView: (UITableView) tableView cellForRowAtIndexPath: (NSIndexPath) indexPath static NSString CellIdentifier quotCellquot UITableViewCell tabela de célulasView dequeueReusableCellWithIdentifier: CellIdentifier if (cell nil) celular UITableViewCell alloc initWithStyle: UITableViewCellStyleDefault reuseIdentifier: CellIdentifier autorelease Tenha em mente que um indicador de divulgação é meramente para contexto visual que doesn8217t realmente faz qualquer coisa. Você ainda precisa implementar a sub-visualização que deseja exibir. Indicadores de divulgação de cores personalizadas Às vezes, você pode querer ter uma cor de fundo diferente em suas visualizações de mesa do que a Apple White. Um problema que você provavelmente enfrentará é que isso torna impossível usar os acessórios de celulares de exibição de tabela normal. As setas pretas no fundo preto são um pouco difíceis de ver. Você terá que desenhar o seu próprio. E nesta publicação eu vou mostrar-lhe como eu fiz. Só hoje descobri um mecanismo que torna ainda mais fácil rolar sua própria visão de acessório customizada. O nome da propriedade que contém a palavra 8220view8221 é um pouco enganador neste caso. Você pode estar tentado a criar sua própria subclasse UIView e anular o drawRect para desenhar lá. No entanto, isso tem uma desvantagem, você não pode alternar as cores quando a célula é realçada. Atualização 1 de fevereiro de 2013: DTCustomColoredAccessory apresentado neste artigo faz parte da DTFoundation Open Source e está coberto por uma licença BSD de 2 cláusulas. Você pode usá-lo com atribuição de graça ou pode comprar uma licença de não atribuição em nossa loja de peças. BSA Banner UIView não possui as propriedades selecionadas. Habilitado e destacado. Para isso, você deve recorrer ao UIControl que faz. E descobri, tentando que, se você não usar um UIView para seu acessório colorido, mas, em vez disso, UIControl, essas propriedades ficam alegremente desencadeadas pela própria tabela. Tudo o que você precisa fazer é escolher a cor de desenho correta com base no estado atual. Aqui está a minha implementação de um indicador de divulgação que pode ter qualquer cor para o estado regular e destacado. Boa adição 8211 obrigado. Eu ajustei um pouco para que ele também faça verificações. Basta adicionar uma propriedade BOOL para verificação: (CustomColouredDisclosure) accessoryWithColor: (UIColor) cor CustomColouredDisclosure ret CustomColouredDisclosure alloc initWithFrame: CGRectMake (0, 0, 15.0, 15.0) autorelease ret. accessoryColor cor 8211 (void) drawChevron: (CGRect) rect (x , Y) é a ponta da seta CGFloat x CGRectGetMaxX (self. bounds) -5.0 CGFloat e CGRectGetMidY (self. bounds) const CGFloat R 4.5 CGContextRef ctxt UIGraphicsGetCurrentContext () CGContextMoveToPoint (ctxt, xR, yR) CGContextAddLineToPoint (ctxt, x, Y) CGContextAddLineToPoint (ctxt, xR, yR) CGContextSetLineCap (ctxt, kCGLineCapSquare) CGContextSetLineJoin (ctxt, kCGLineJoinMiter) CGContextSetLineWidth (ctxt, 3) se (self. highlighted) self. highlightedColor setStroke else self. accessoryColor setStroke 8211 (void) drawCheck :( CGRect) rect (x, y) é a ponta da seta CGFloat x CGRectGetMaxX (self. bounds) -3.0 CGFloat y 3 const CGFloat R 3.5 CGContextRef ctxt UIGraphicsGetCurrentContext () CGContextMoveToPoint (ctxt, x, Y) CGContextAddLineToPoint (ctxt, x-1.8R, y3R) CGContextAddLineToPoint (ctxt, x-2.7R, y2R) CGContextSetLineCap (ctxt, kCGLineCapRound) CGContextSetLineJoin (ctxt, kCGLineJoinRound) CGContextSetLineWidth (ctxt, 3) se (self. highlighted) self. ResaltadoColor setStroke else self. accessoryColor setStroke 8211 (void) drawRect: (CGRect) reto se (auto-seleção) auto-desenhar Checar: reto mais auto desenharChevron: reto

No comments:

Post a Comment