Guten Tag zusammen,
ich habe ein Problem beim Autoresizing eines UILabel!
Hier erstmal mein Code:
Alles anzeigen
Alles anzeigen
Nun der Animationscode:
Alles anzeigen
Mein Problem:
Die Größe und Position des View "karte_1 - karte_4" passt sich während der Animation an. Der Button "btn_karte" passt sich auch wie geplant an.
Nur das Label "la_headline" springt auf einemal an den linken Rand und ändert direkt die Größe, wie in den Screenshots zu sehen.
Woran kann das liegen?
Hoffe, dass Ihr mir helfen könnt.
Gruß
kruemel1770
ich habe ein Problem beim Autoresizing eines UILabel!
Hier erstmal mein Code:
Quellcode
- #import <UIKit/UIKit.h>
- @interface Gutscheinuebersicht_Karte : UIView
- {
- //Button
- UIButton *btn_karte;
- //Headline
- UILabel *la_headline;
- }
- //Initialisieren
- - (id)initWithFrame:(CGRect)frame
- setHeadline:(NSString *)headline
- setImage:(NSString *)image
- setAktion:(NSString *)aktion
- setZusatztext:(NSString *)zusatztext;
- @end
Quellcode
- #import "Gutscheinuebersicht_Karte.h"
- @implementation Gutscheinuebersicht_Karte
- //Initialisieren
- - (id)initWithFrame:(CGRect)frame
- setHeadline:(NSString *)headline
- setImage:(NSString *)image
- setAktion:(NSString *)aktion
- setZusatztext:(NSString *)zusatztext
- {
- self = [super initWithFrame:frame];
- if (self) {
- self.autoresizesSubviews = YES;
- //Button
- btn_karte = [UIButton buttonWithType:UIButtonTypeCustom];
- btn_karte.frame = CGRectMake(0.0, 0.0, frame.size.width, frame.size.height);
- [btn_karte setBackgroundImage:[UIImage imageWithContentsOfFile:[Bilderimport bilderzeichniss:@"Grafiken/Gutscheine" Filename:@"bg_gutschein_blank.png"]] forState:UIControlStateNormal];
- [btn_karte setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth];
- [self addSubview:btn_karte];
- //Headline
- la_headline = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, frame.size.width, frame.size.height)];
- la_headline.backgroundColor = [UIColor grayColor];
- la_headline.font = [UIFont boldSystemFontOfSize:16.0];
- la_headline.textColor = [UIColor blackColor];
- la_headline.textAlignment = NSTextAlignmentCenter;
- la_headline.text = headline;
- [la_headline setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth];
- [self addSubview:la_headline];
- }
- return self;
- }
- @end
Nun der Animationscode:
Quellcode
- //Rotate
- [UIView animateWithDuration:animation_duration_stapel_oeffnen/2
- delay: 0.0
- options: UIViewAnimationOptionCurveLinear
- animations:^{
- karte_2.transform = CGAffineTransformMakeRotation(0 * M_PI / 180);
- karte_3.transform = CGAffineTransformMakeRotation(0 * M_PI / 180);
- karte_4.transform = CGAffineTransformMakeRotation(0 * M_PI / 180);
- }
- completion:^(BOOL finished){
- //Kreuz + Position + Alpha
- [UIView animateWithDuration:animation_duration_stapel_oeffnen/2
- delay: 0.0
- options: UIViewAnimationOptionCurveLinear
- animations:^{
- //Kreuz
- iV_kreuz.alpha = 1.0;
- //Position
- karte_1.frame = CGRectMake((self.frame.size.width/2 - gutschein_width_klein)/2,
- (self.frame.size.height/2 - gutschein_height_klein)/2,
- gutschein_width_klein,
- gutschein_height_klein);
- karte_2.frame = CGRectMake(self.frame.size.width - gutschein_width_klein - (self.frame.size.width/2 - gutschein_width_klein)/2,
- (self.frame.size.height/2 - gutschein_height_klein)/2,
- gutschein_width_klein,
- gutschein_height_klein);
- karte_3.frame = CGRectMake((self.frame.size.width/2 - gutschein_width_klein)/2,
- self.frame.size.height - gutschein_height_klein - (self.frame.size.height/2 - gutschein_height_klein)/2,
- gutschein_width_klein,
- gutschein_height_klein);
- karte_4.frame = CGRectMake(self.frame.size.width - gutschein_width_klein - (self.frame.size.width/2 - gutschein_width_klein)/2,
- self.frame.size.height - gutschein_height_klein - (self.frame.size.height/2 - gutschein_height_klein)/2,
- gutschein_width_klein,
- gutschein_height_klein);
- //Alpha
- karte_2.alpha = 1.0;
- karte_3.alpha = 1.0;
- karte_4.alpha = 1.0;
- }
- completion:^(BOOL finished){
- //TapGesture
- [self removeGestureRecognizer:tapGesture];
- //PinchGesture
- pinch_uebersicht = TRUE;
- //View
- karte_1.userInteractionEnabled = YES;
- karte_2.userInteractionEnabled = YES;
- karte_3.userInteractionEnabled = YES;
- karte_4.userInteractionEnabled = YES;
- }];
- }];
Mein Problem:
Die Größe und Position des View "karte_1 - karte_4" passt sich während der Animation an. Der Button "btn_karte" passt sich auch wie geplant an.
Nur das Label "la_headline" springt auf einemal an den linken Rand und ändert direkt die Größe, wie in den Screenshots zu sehen.
Woran kann das liegen?
Hoffe, dass Ihr mir helfen könnt.
Gruß
kruemel1770