uiscrollview uiimageview uilabel addsubview

Agregar UILabels y UIImageViews a UIScrollView mediante programación



scrollview swift (2)

Sé que esta pregunta está aquí mucho, pero todavía no puedo hacer que esto funcione. Probablemente no estoy iniciando la vista correctamente o algo así ... De todos modos, estoy tratando de agregar varias etiquetas e imágenes a un UIScrollView programmatically. Aquí está mi código para mi archivo .h:

#import <UIKit/UIKit.h> @interface DOR_HelpViewController : UIViewController <UIScrollViewDelegate> { IBOutlet UIScrollView *scrollView; } @property (nonatomic, retain) IBOutlet UIScrollView *scrollView; @end

Y mi archivo .m:

#import "DOR_HelpViewController.h" @implementation DOR_HelpViewController @synthesize scrollView; - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; scrollView = [[UIScrollView alloc] init]; UILabel *pointsCouponLbl = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 20.0, 320.0, 15.0)]; pointsCouponLbl.font = [UIFont boldSystemFontOfSize:14.0]; pointsCouponLbl.textAlignment = UITextAlignmentCenter; pointsCouponLbl.textColor = [UIColor blackColor]; pointsCouponLbl.backgroundColor = [UIColor clearColor]; pointsCouponLbl.text = @"Points Earned Using a Coupon"; [scrollView addSubview:pointsCouponLbl]; UIImageView *pointsCouponImg = [[UIImageView alloc] initWithFrame:CGRectMake(72, 45, 175, 100)]; pointsCouponImg.image = [UIImage imageNamed:@"couponpoints.png"]; [scrollView addSubview:pointsCouponImg]; UILabel *pointsCheckInLbl = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 165.0, 320.0, 15.0)]; pointsCheckInLbl.font = [UIFont boldSystemFontOfSize:14.0]; pointsCheckInLbl.textAlignment = UITextAlignmentCenter; pointsCheckInLbl.textColor = [UIColor blackColor]; pointsCheckInLbl.backgroundColor = [UIColor clearColor]; pointsCheckInLbl.text = @"Points Earned For Check-In"; [scrollView addSubview:pointsCheckInLbl]; pointsCheckInLbl = nil; UIImageView *pointsCheckInImg = [[UIImageView alloc] initWithFrame:CGRectMake(72, 190, 175, 100)]; pointsCheckInImg.image = [UIImage imageNamed:@"checkinpoints.png"]; [scrollView addSubview:pointsCheckInImg]; pointsCheckInImg = nil; } - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } #pragma mark - View lifecycle - (void)viewDidUnload { [super viewDidUnload]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); } @end

scrollView está vinculado a mi objeto UIScrollView en mi guión gráfico. Apreciaría mucho la información sobre lo que estoy haciendo mal, y por qué si no te importa. Gracias de antemano ~


Eliminar scrollView = [[UIScrollView alloc] init]; No es necesario (incluso contraproducente) cuando se trabaja con IB.

(en realidad solo era una idea en un comentario, ver más arriba. Pero trato de ganar reputación siempre que sea posible ;-))


-(void)addImagesToScrollView:(NSMutableArray*)jsonArray{ if (!jsonArray || jsonArray.count ==0) { return; } int imageXPos=0; int imageWidth=50; int imageHeight=50; for (int index=0; index<[jsonArray count]; index++) { NSMutableDictionary *dict=[jsonArray objectAtIndex:index]; NSString *thumbUrl=[JsonUtil getString:dict forKey:@"thumb"]; UIImageView *imageView = [[UIImageView alloc] init ]; [imageView setImageWithURL:[NSURL URLWithString:thumbUrl] placeholderImage:[UIImage imageNamed:@"place_image"]]; imageView.contentMode = UIViewContentModeScaleToFill; imageView.clipsToBounds = YES; imageView.frame = CGRectMake(imageXPos,1, imageWidth, imageHeight); [self.placeImageScrollView addSubview:imageView]; imageXPos = imageXPos + imageView.frame.size.width +2;//2 is padding } self.placeImageScrollView.contentSize = CGSizeMake(imageXPos, self.placeImageScrollView.frame.size.height); }