2017-03-31 4 views
-8

in 10 UIButtons in runder Form erzeugen wie eine 10 abgerundeten UIButtons in runder Form mit Nummer Text for-SchleifeWie für Schleifen

for(i=0;i<=10;i++) { 
    j=j+10; 

    UIButton *bt = [[UIButton alloc]initWithFrame:CGRectMake(10, j+10, 50, 50)]; 
    bt.backgroundColor = [UIColor redColor]; 

    bt.layer.cornerRadius = 0.5 * bt.frame.size.width; 
    [bt setTitle:@"click" forState:UIControlStateNormal]; 
    [bt addTarget:nil action:@selector(clicked) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:bt]; 

} 
+1

Was ist das Problem, das Sie haben? – Carcigenicate

+0

warum fügst du 10 zu j, 2 mal hinzu? – Honey

+0

@ Honey, er muss j –

Antwort

4

Sie sehen nur „eine“ Taste erzeugen, die vertikal verlängert ist , was Sie glauben macht, dass Sie nur eine Schaltfläche anstelle von 11 erstellen?

Der Grund ist der Offset, dass Sie in Ihrem Code anwenden:

j = j + 10; 

Mit dem oben, Sie sind 11 UIButton s einander überlappen zu sehen, damit die Illusion, dass es nur eine Taste waren, die vertikal verlängert ist .

Versuchen Sie, den Betrag der Versetzung zu ändern:

j = j + 50; 

Sie würden sehen, dann 11 UIButton s auf dem Bildschirm vertikal.

Als Neben, wenn Sie nur 10 Tasten erstellen soll statt 11, sollte der Zustand geändert werden:

for(int i = 0; i < 10; i++) //instead of using <= 

Und, vergessen Sie nicht zu initialisieren j; sonst würde man nichts sehen:

int j = 0; //do this before you enter the loop 

Sie sollten eine Warnung erhalten haben, hatte auch noch nicht geschehen.


Ergebnis mit 10 UIButton s mit den oben genannten Änderungen:

enter image description here

+0

Ich möchte zehn runde Schaltflächen im Kreis zeigen –