Итак, я задал этот вопрос раньше и получил несколько ответов, но все получилось очень грязным, поэтому я решил задать его здесь.Создание кнопок путем циклического перемещения по массиву
Я инициализация Scrollview здесь:
ScrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0,0,320,480)];
ScrollView.showsVerticalScrollIndicator=YES;
ScrollView.scrollEnabled=YES;
ScrollView.bounces = YES;
ScrollView.userInteractionEnabled=YES;
[self.view addSubview:ScrollView];
ScrollView.contentSize = CGSizeMake(10500,480);
[self.view addSubview:homeButton];
Я массивы для 44 кнопок, которые будут созданы, массивы содержат информацию об именах, имена файлов для фотографий, координату и т.д.
Я бегу это:
for (int i = 0; i < 44; i++) {
[self makeLabelsAndButtons:i];
xPresCoord += 10;
}
В моей viewDidLoad
И это метод makeLabelsAndButtons:
-(void)makeLabelsAndButtons:(NSInteger)indexPath{
Button = [UIButton buttonWithType:UIButtonTypeCustom];
[Button addTarget:self action:@selector(presPressed:) forControlEvents:UIControlEventTouchUpInside];
Button.frame = CGRectMake(160.0, 240.0, 220.0, [[numbers objectAtIndex:indexPath] integerValue]);
Button.center = CGPointMake(xPresCoord, 200.0);
[Button setBackgroundImage:[UIImage imageNamed:[picArray objectAtIndex:indexPath]] forState: UIControlStateNormal];
[self.ScrollView addSubview:Button];
Label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 32)];
Label.text = [nameArray objectAtIndex:indexPath];
Label.center = CGPointMake([[numbers objectAtIndex:indexPath] integerValue], 390);
[Label setFont:[UIFont fontWithName:@"GurmukhiMN" size:27]];
Label.numberOfLines = 1;
Label.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5f];
[Label sizeToFit];
Label.textColor= [UIColor whiteColor];
[ScrollView addSubview:Label];
//[ScrollView insertSubview:Label atIndex:1];
//NSLog(@"name: %@, pic:%@, picY:%i", nameString, picString, picNumb);
for (UIView *subview in ScrollView.subviews) NSLog(@"View: %@", subview);
}
Последние NSLog показывает, что подвиды (метки и кнопки) не добавляются, но я понятия не имею, почему.
Button и этикетка определяются как:
UIButton *Button;
UILabel *Label;
В моей .h файле
Любая помощь приветствуется!
EDIT: Вот ссылка на другой вопрос
Creating buttons with an Array
Я попробовал ваш код на другой день, и он работал нормально для меня. Является ли ScrollView non nil? Как вы объявляете кнопку? Являются ли они оба свойствами или иварами? – rdelmar
ScrollView не равен нулю, ScrollView - это свойство и UIScrollView, которые я объявил в своем заголовке, и я знаю, что это работает, потому что у меня есть некоторые элементы в нем в построителе интерфейса, и они есть, поэтому я знаю, что представление существует. Кнопка определена как кнопка UIButton *; в моем заголовке – tyler53
Могу ли я увидеть файлы .h и .m для кода, который вы использовали? посмотреть, что другое? – tyler53