Каков наилучший способ расположения элементов друг на друге относительно, где я могу удалить один и все другие элементы вверх. Ниже приведен скриншот элементов, построенных динамически и размещаемых с определенными значениями x и y, но могу ли я просто использовать IB и относить свои элементы относительным образом, и когда я хочу скрыть все, все движется вверх. Также, если бы я хотел сделать это динамически и добавить элементы пользовательского интерфейса, уложенные друг на друга. Мои проблемы ниже - государство/город иногда не существует, и я хочу, чтобы кнопка игры двигалась вверх, когда она скрыта.Позиции Элементы пользовательского интерфейса В IOS Относительно HTML
ответ
Вы можете добавить все эти объекты в изменяемом массиве. Задайте объект с помощью цикла for. после каждого приращения цикла приращение значения y объекта объекта с определенным значением. Если один объект не должен отображаться, а затем удалить его из массива и выполнить цикл
array = [NSMutableArray arrayWithObjects:label1,label2,label3,label4];
int y = 50;
for(int i = 0; i<[array count];i++)
{
[array objectAtIndex:i].frame = CGRectMake(x,y,width,height);
[self.view addSubview:[array objectAtIndex:i]];
y = y+50;
}
Если вы когда-нибудь решите пойти с Auto Layout, вот одно решение.
Ключом к моему подходу является то, что большинство ограничений, которые я создал в IB, являются ограничениями заполнителя; то есть они автоматически удаляются системой во время выполнения. Таким образом, я могу динамически компоновать подзаголовки во время выполнения кода.
Единственного ограничение, созданное в IB, которые не являются заполнителями являются следующим:
- ограничения ширины для кнопки игры
- ограничения, что по горизонтали центров кнопки игры в надтаблицах
игровая кнопка никогда не удаляется во время выполнения, поэтому вполне можно сохранить эти ограничения во время выполнения.
Если текст ярлыка равен нулю, он удаляется из иерархии вида в viewDidLoad.
#import "ViewController.h"
@interface ViewController()
@property (weak, nonatomic) IBOutlet UILabel *label1;
@property (weak, nonatomic) IBOutlet UILabel *label2;
@property (weak, nonatomic) IBOutlet UILabel *label3;
@property (weak, nonatomic) IBOutlet UIButton *gamesButton;
@property (nonatomic, strong) NSMutableArray *viewsStack;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// for testing...
//self.label1.text = nil;
//self.label2.text = nil;
self.label3.text = nil;
// build stack of views and remove labels with no text
self.viewsStack = [[NSMutableArray alloc] init];
for (UILabel *label in @[self.label1, self.label2, self.label3]) {
if (label.text != nil) {
[self.viewsStack addObject:label];
} else {
[label removeFromSuperview];
}
}
[self.viewsStack addObject:self.gamesButton];
[self configureConstraintsForViewsStack:self.viewsStack];
}
#define VERTICAL_SPACER 15
- (void)configureConstraintsForViewsStack:(NSArray *)views
{
NSString *format = @"V:[topLayoutGuide]";
NSMutableDictionary *viewsDictionary = [[NSMutableDictionary alloc] init];
[viewsDictionary setObject:self.topLayoutGuide forKey:@"topLayoutGuide"];
for (int i = 0; i < [views count]; i++) {
format = [format stringByAppendingFormat:@"-spacer-[view%d]", i];
[viewsDictionary setObject:views[i] forKey:[NSString stringWithFormat:@"view%d", i]];
}
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:format options:NSLayoutFormatAlignAllCenterX metrics:@{@"spacer": @(VERTICAL_SPACER)} views:viewsDictionary]];
}
- 1. Элементы пользовательского интерфейса iOS 7
- 2. Элементы позиции относительно родительского
- 3. iOS 9 - Отсутствующие элементы пользовательского интерфейса
- 4. Элементы позиции относительно родителя родителя
- 5. Пользовательские элементы пользовательского интерфейса
- 6. Как сгруппировать элементы пользовательского интерфейса в UIView?
- 7. HTML элементы/CSS позиции
- 8. Создание пользовательского настраиваемого пользовательского интерфейса в ios
- 9. Замораживание пользовательского интерфейса в IOS
- 10. Интеграция пользовательского интерфейса в iOS
- 11. Добавить элементы пользовательского интерфейса в UIScrollView?
- 12. IOS Различные элементы пользовательского интерфейса в UIViewController после сетевого вызова
- 13. В iOS, как перемещать элементы пользовательского интерфейса, когда устройство вращается?
- 14. Элементы пользовательского интерфейса iOS не будут обновляться, пока в методе
- 15. JQuery позиции проходят пользовательского интерфейса в%, а не положение экрана
- 16. элементы пользовательского интерфейса не обновляются
- 17. Элементы пользовательского интерфейса, не отображающие
- 18. Мои элементы пользовательского интерфейса отсутствуют
- 19. Просмотр шаблона пользовательского интерфейса - общие элементы пользовательского интерфейса во всех сценах приложения iOs?
- 20. Изменение позиции XY элементов/объектов пользовательского интерфейса
- 21. ios создавать, а затем динамически добавлять элементы пользовательского интерфейса
- 22. Высококонфигурируемые цвета пользовательского интерфейса iOS
- 23. Разрешить обновления пользовательского интерфейса IOS
- 24. Элементы пользовательского интерфейса в сценариях Gherkin
- 25. Отсутствующие элементы пользовательского интерфейса в XCode 6
- 26. Найти элементы пользовательского интерфейса в единстве
- 27. Программно позиционирующие элементы пользовательского интерфейса в C#
- 28. Элементы пользовательского интерфейса C# в массиве
- 29. Добавить элементы пользовательского интерфейса в конце UITableView
- 30. Элементы пользовательского интерфейса слоев в Qt Designer
Будет ли это работать без раскадровки. –