Artigos com a tag 'initWithFrame'

Objective-C: Adenda sobre as notificações e delegados

Responda à pergunta de ILeW com um artigo para explicar melhor em si, juntando exemplo de trabalho, como delegados e notificações. Usando um padrão que vemos primeiro como padrão o delegado:

Delegate

Um objeto em busca de um delegado

Leia mais ...

Personalize as seções em um UITableView Agrupados

potremmo aver necessità di personalizzare la grafica dei titoli delle sezioni, come California o New York dell'esempio qui sotto. Quando usamos um UITableView estilo Grouped podemos precisar para personalizar o layout de títulos das seções, como a Califórnia ou Nova Iorque o exemplo abaixo.

UITableView

Para fazê-lo, por favor use o seguinte código, colocando-a ao delegado, ou seja, a classe que responde ao protocolo UITableViewDelegate :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/ / Eu retornar a minha exibição personalizada, neste caso um objeto
/ Tipo / UILabel
UIView * ) tableView : ( UITableView * ) tableView - (UIView *) tableView: (UITableView *) tableView
NSInteger ) section { viewForHeaderInSection: seção (NSInteger) {

[ [ [ UILabel alloc ] initWithFrame : CGRectZero ] autorelease ] ; UILabel * label = [[[UILabel alloc] initWithFrame: CGRectZero] autorelease];
UIFont boldSystemFontOfSize : 20 ] ; label.font = [UIFont boldSystemFontOfSize: 20];
label.textAlignment = UITextAlignmentCenter;
UIColor blackColor ] ; label.shadowColor = [UIColor blackColor];
1 , 1 ) ; label.shadowOffset CGSizeMake = (1, 1);
"Sezione" ; // Sostituire con un array come al solito Label.Text @ = "Seção", / / Replace com uma matriz, como de costume
UIColor whiteColor ] ; label.textColor = [UIColor whiteColor];
UIColor clearColor ] ; label.backgroundColor = [UIColor clearColor];
; label.opaque = NO;

voltar rótulo;
}
/ / Devemos também apoiar esta mensagem não irá funcionar
CGFloat ) tableView : ( UITableView * ) tableView - (CGFloat) tableView: (UITableView *) tableView
NSInteger ) section { heightForHeaderInSection: seção (NSInteger) {
; voltar 44;
}

É também importante incluir heightForHeaderInSection , não irá funcionar.

Notas de Interesse

o UIImageView , ho utilizzato per inizializzare il frame CGRectZero che corrisponde a CGRectMake(0,0,0,0) . Na criação do nosso UILabel , querendo que também poderia ser um objeto mais complexo, como um UIView ou UIImageView , eu usado para inicializar o frame CGRectZero o que corresponde a CGRectMake(0,0,0,0) .

Leia mais ...

Apple iPhone: Criar um botão personalizado de alternância

non funzionano quando un UIButton è impostato in modalità UIButtonTypeCustom ! Os estados UIControlStateSelected ou UIControlStateHighlighted não funcionam quando um UIButton modo é definido UIButtonTypeCustom ! Ou melhor, não funciona (porque reservado para outros tipos de botão), por exemplo, para criar um botão com dois estados: nota de alternância. Se nós criamos duas imagens (stato1.png e stato2.png) para o nosso botão, podemos proceder da seguinte forma:

1
2
3
/ / O arquivo de cabeçalho que nós criamos uma variável global para usaremo
/ / Mude o cheque foi
ToggleFlag BOOL;

Agora vamos criar o nosso botão:

1
2
3
4
5
6
7
8
9
/ / Criamos um botão e nós colocá-lo inicialmente no estado "stato1.png"
/ / Edit initWithFrame: (CGRect)} {100,100,50,50 com a posição e
/ / Tamanho da sua imagem tem
; toggleFlag = YES;
[ [ UIButton buttonWithType : UIButtonTypeCustom ] initWithFrame : ( CGRect ) { 100 , 100 , 50 , 50 } ] ; UIButton ToggleButton * = [[UIButton buttonWithType: UIButtonTypeCustom] initWithFrame: (CGRect) {100, 100, 50, 50}];
@ "" forState : UIControlStateNormal ] ; [ToggleButton setTitle: @ "" forState: UIControlStateNormal];
[ UIImage imageNamed : @ "stato1.png" ] forState : UIControlStateNormal ] ; [ToggleButton setBackgroundImage: [UIImage imageNamed: @ "stato1.png"] forState: UIControlStateNormal];
self action : @selector ( onToggle : ) forControlEvents : UIControlEventTouchUpInside ] ; [AddTarget ToggleButton: acção de auto: @ selector (onToggle :) forControlEvents: UIControlEventTouchUpInside];
toggleButton ] ; [Self.view addSubview: ToggleButton];

Quando você clicar no botão irá enviar uma mensagem para ser gerido onToggle :

1
2
3
4
5
6
7
void ) onToggle : ( id ) sender { - (Void) onToggle: (id) sender {
/ / Recuperar ponteiro para UIButton
( UIButton * ) sender; UIButton buttonClicked * = (UIButton *) remetente;
/ / Executar o Toogle
toggleFlag = toggleFlag!;
[ UIImage imageNamed : ( toggleFlag ) ? @ "stato1.png" : @ "stato2.png" ] forState : UIControlStateNormal ] ; [ButtonClicked setBackgroundImage: [UIImage imageNamed: (toggleFlag) @ "Stato1.png" @ "stato2.png"] forState: UIControlStateNormal];
}

Leia mais ...

iPhone: estender uma classe UIView

creato. Quero mostrar como é possível, de uma forma simples e rápida, estender uma classe UIView de tal maneira que responde a um método de inicialização de novo contendo ainda o código objecto para personalizar UIView criado. Como alguns de vocês provavelmente sabem, Objective-C não suporta um único fabricante como nas línguas objeto outras orientadas (como o Adobe ActionScript ou PHP5). E 'pode, de fato, criar uma instância de uma classe manualmente invocando diferentes fabricantes (quase infinita). . Normalmente, são usados ​​para criar objetos UIView com o clássico initWithFrame . Suponha que, no entanto, queremos criar uma nova classe de objetos visuais, a partir de um UIView , com alguma adição, esse rótulo é incorporado. . Basicamente o que nós queremos é que instanciar o nosso objeto que ele cria, bem como o UIView , um objeto do tipo UILabel . Por exemplo, podemos querer chegar ao fim:

1
[ [ ViewLabel alloc ] initWithLabelDefine : CGRectMake ( 0 , 0 , 320 , 80 ) label : @ "Ciao" ] ; ViewLabel * vl = [[ViewLabel alloc] initWithLabelDefine: CGRectMake rótulo (0, 0, 320, 80): @ "Olá"];

: Para isso basta criar uma nova classe de tipo UIView e chamada ViewLabel :

1
2
3
4
5
6
7
8
9
10
11
12
13
/ /
/ / ViewLabel.h
/ /

# Importar <UIKit/UIKit.h>

UIView { @ Interface ViewLabel: UIView {
UILabel * internalLabel;
}

id ) initWithLabelDefine : ( CGRect ) frame label : ( NSString * ) labelDefine; - (Id) initWithLabelDefine: (CGRect) rótulo de quadro: ( NSString *) labelDefine;

@ End
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/ /
/ / ViewLabel.m
/ /

# Importar "ViewLabel.h"

@ Implementação ViewLabel

id ) initWithFrame : ( CGRect ) frame { - (Id) initWithFrame: frame (CGRect) {

self = [ super initWithFrame : frame ] ) { if (self = [super initWithFrame: frame]) {
/ Inicialização / código
}
retornar auto;
}

/ /
/ / Inicializador nosso novo
/ /
id ) initWithLabelDefine : ( CGRect ) frame label : ( NSString * ) labelDefine { - (Id) initWithLabelDefine: (CGRect) rótulo de quadro: ( NSString *) {labelDefine

self = [ super initWithFrame : frame ] ) { if (self = [super initWithFrame: frame]) {
/ / Aqui você pode decidir como se comportar, eu para
/ / Eu tenho o mesmo quadro de segurança no passado
/ / Entrada mas eu redefinir a x e y
; frame.origin.x = 0;
; frame.origin.y = 0;
UILabel alloc ] initWithFrame : frame ] ; internalLabel = [[UILabel alloc] initWithFrame: quadro];
internalLabel.text = labelDefine;
internalLabel ] ; [Self addSubview: internalLabel];
; [InternalLabel release];
}
retornar auto;
}

void ) drawRect : ( CGRect ) rect { - (Void) drawRect: (CGRect) {rect
Código / Desenho /
}

void ) dealloc { - (Void) {dealloc
; [Super dealloc];
}

@ End

Na época da criação da nossa nova classe, podemos usar:

1
[ [ ViewLabel alloc ] initWithLabelDefine : CGRectMake ( 0 , 0 , 320 , 80 ) label : @ "Ciao" ] ; ViewLabel * vl = [[ViewLabel alloc] initWithLabelDefine: CGRectMake rótulo (0, 0, 320, 80): @ "Olá"];

Leia mais ...

Apple iPhone SDK 3.0: Corrigido bug no UIButton buttonWithType

Como indicado na pós Apple iPhone SDK 3,0: incompatibilidade primeiro do SDK da Apple 3,0 mostram comportamentos diferentes no que diz respeito a libertar 2.2.1. O serviço de suporte para os desenvolvedores me deu a resposta, e então a solução para o problema. . A resposta foi que o suporte técnico [UIButton buttonWithType:] já chamado - no interior - o initWithFrame . Daqui resulta que, de acordo com o suporte técnico, escrevendo:

Leia mais ...

Apple iPhone SDK 3.0: incompatibilidade primeiro

Depois de instalar o 3.0 SDK para o iPhone da Apple, evidentemente, ainda não perfeitamente estável, de imediato, notei alguns problemas, tanto na compilação do código está no XCode geral. O mais importante - o que eu prontamente relatado com uma "casa" para desenvolvedores da Apple, no centro - a criação de botões através de código. Aqui está um trecho do código não é compatível com o SDK 3.0:

1
2
3
4
[ [ UIButton buttonWithType : UIButtonTypeRoundedRect ] initWithFrame : CGRectMake ( 0 , 0 , 100 , 40 ) ] ; UIButton * myButton = [[UIButton buttonWithType: UIButtonTypeRoundedRect] initWithFrame: CGRectMake (0, 0, 100, 40)];
@ "Bottone" forState : UIControlStateNormal ] ; [MyButton setTitle: @ "Button" forState: UIControlStateNormal];
/ / Outras configurações
myButton ] ; [Self.view addSubview: myButton];

Ao preencher este código com o SDK 2.2.1 você tem um botão clássico com o rótulo de "Button". Com o SDK 3.0, o botão é criado, mas o rótulo desaparece. la situazione sembra migliorare, nel senso che la label viene resa apparentemente in modo corretto. Utilizando como buttonWithType o tipo UIButtonTypeCustom a situação parece melhorar, no sentido de que a etiqueta é aparentemente feita correctamente. Ainda é estranho para a falha súbita do tipo UIButtonTypeRoundedRect . Ainda estou aguardando uma resposta da Apple ... Eu só novidades; lugar!

Leia mais ...


Pare SOPA