簡體   English   中英

iOS:如何在背景圖片上添加uiLabel?

[英]ios : how to add uiLabel on top of the background image?

我試圖在uiImageVIew頂部添加uiLabel,這是背景圖像。 在uiImageView頂部添加uiLabel時,在測試和運行時無法對uilabel進行添加。 如果這樣做的話,請您告訴我替代方法或注意事項?

下面是我的代碼:

@implementation CoverViewController

- (void)viewDidLoad {
    [super viewDidLoad];

   _container = [[UIView alloc] initWithFrame:[self.view bounds]];

    [self setTapDemo :[UIImage imageNamed:@"cover_1_d.png"] ] ;
}



- (void) setTapDemo: (UIImage *) cover {

    _image = [UIImage imageNamed:@"shaded_region.png"];
    _imageShaded = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [_imageShaded setImage:_image];
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [imageView setImage: cover ];
    _imageShaded.userInteractionEnabled = YES;
    UITapGestureRecognizer *myGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(touchesBegan:)];
    myGesture.numberOfTapsRequired = 1;
    myGesture.delegate=self;
    [_imageShaded addGestureRecognizer:myGesture];
    [_imageShaded setContentMode:UIViewContentModeScaleAspectFill];

    NSString * text = @"Quad name:";

    CGSize labelSize = CGSizeMake(60, CGFLOAT_MAX);
    UILabel *fromLabel = [[UILabel alloc]initWithFrame:CGRectMake(91, 15, labelSize.width, labelSize.height)];
    fromLabel.text = text;
    fromLabel.numberOfLines = 1;
    fromLabel.lineBreakMode = NSLineBreakByWordWrapping;
    fromLabel.baselineAdjustment = UIBaselineAdjustmentAlignBaselines; // or UIBaselineAdjustmentAlignCenters, or UIBaselineAdjustmentNone
    fromLabel.adjustsFontSizeToFitWidth = YES;
    fromLabel.minimumScaleFactor = 10.0f/12.0f;
    fromLabel.clipsToBounds = YES;
    fromLabel.backgroundColor = [UIColor clearColor];
    fromLabel.textAlignment = NSTextAlignmentLeft;
    [_imageShaded addSubview:fromLabel];
    [imageView addSubview:fromLabel];


    [_container addSubview:_imageShaded];
    [_container addSubview:imageView];
    [_container addSubview:fromLabel];

    [self.view addSubview:_container];
    [self.view sendSubviewToBack:_container];


}

檢查這個

- (void) setTapDemo: (UIImage *) cover {

    _image = [UIImage imageNamed:@"images.jpg"];
    _imageShaded = [[UIImageView alloc] initWithFrame:CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height)];
    [_imageShaded setImage:_image];
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height)];
    [imageView setImage: cover ];
    _imageShaded.userInteractionEnabled = YES;
    UITapGestureRecognizer *myGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(touchesBegan:)];
    myGesture.numberOfTapsRequired = 1;
    myGesture.delegate=self;
    [_imageShaded addGestureRecognizer:myGesture];
    [_imageShaded setContentMode:UIViewContentModeScaleAspectFill];

    NSString * text = @"Quad name:";
   // CGSize labelSize = CGSizeMake(60, CGFLOAT_MAX);
    UILabel *fromLabel = [[UILabel alloc]initWithFrame:CGRectMake(91, 15, 300, 40)];
    fromLabel.text = text;
    fromLabel.textColor = [UIColor greenColor];
    fromLabel.numberOfLines = 1;
    fromLabel.lineBreakMode = NSLineBreakByWordWrapping;
    fromLabel.baselineAdjustment = UIBaselineAdjustmentAlignBaselines; // or UIBaselineAdjustmentAlignCenters, or UIBaselineAdjustmentNone
    fromLabel.adjustsFontSizeToFitWidth = YES;
    fromLabel.minimumScaleFactor = 10.0f/12.0f;
    fromLabel.clipsToBounds = YES;
    fromLabel.backgroundColor = [UIColor clearColor];
    fromLabel.textAlignment = NSTextAlignmentLeft;



    [_container addSubview:_imageShaded];
    [_container addSubview:imageView];


    [self.view addSubview:_container];
    [self.view sendSubviewToBack:_container];
    [imageView addSubview:fromLabel];


}

您要在不同的視圖上多次添加UILabel。 您應該一次將其添加到一個視圖中;

//[_imageShaded addSubview:fromLabel];   // 1
//[imageView addSubview:fromLabel];      // 2


[_container addSubview:_imageShaded];
[_container addSubview:imageView];
//[_container addSubview:fromLabel];     //3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM