2016-11-18 6 views
1

enter image description hereДобавление Количество подвидов в ViewController

На этом изображении, когда я нажмите кнопку просмотра Добавить, каждый раз добавить новый подвид в том же ViewController, а также удалить кнопку нажатой подвид также будут удалены. Кто-нибудь знает, можете ли вы помочь мне, друзья.

+1

Можете ли вы показать нам, что вы сделали до сих пор, чтобы достичь этого ? – CodeChanger

+0

один или два просмотров добавлены, я попробовал раньше, но мое требование - это нажать кнопку добавления вида каждый раз, когда требуется новое подзаголовок. –

+0

можете ли вы разместить этот код для добавления кода, чтобы мы могли помочь вам здесь? – CodeChanger

ответ

0

Что вам нужно сделать, так это удерживать subviews в массиве.

Дайте кнопкам (удалите и добавьте) тег позиции в массиве.

Затем, когда вы нажимаете «добавить вид» или «удалять», вы будете знать, где вы должны вставить или удалить subview в массиве.

После этого установите теги кнопок на новые индексы, а затем обновите прокрутку.

Было бы проще в Tableview, потому что вы не должны рассчитывать размер содержания и позицию во взглядах спирального

+0

Можете ли вы опубликовать некоторый код. –

+0

извините, но у меня есть много работы, чтобы сделать в моей компании;) – Retterdesdialogs

+0

Ohhh ok thanks. –

0

Я рекомендую вам не использовать UIViews тег вообще, это не ремонтопригодность. Так первый позволяет начать с класса вы viewcontrollers и добавить три свойства там: метод

@property(nonatomic, strong) UIButton *deleteButton; 
@property(nonatomic, strong) UIButton *addButton; 
@property(nonatomic, strong) NSMutableArray *addedSubviews; 

viewDidLoad:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.deleteButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 40)]; 
    [self.view addSubview:self.deleteButton]; 
    [self.deleteButton addTarget:self action:@selector(onDeleteSubview) forControlEvents:(UIControlEventTouchUpInside)]; 

    self.addButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 40)]; 
    [self.view addSubview:self.addButton]; 
    [self.addButton addTarget:self action:@selector(onAddSubview) forControlEvents:(UIControlEventTouchUpInside)]; 

    self.addedSubviews = [NSMutableArray new]; 
} 

- (void)onDeleteSubview { 
    UIView *viewToDelete = [self.addedSubviews lastObject]; 
    [viewToDelete removeFromSuperview]; 
    [self.addedSubviews removeLastObject]; 
    [self.view layoutSubviews]; 
} 

- (void)onAddSubview { 
    UIView *desiredView = [UIView new]; // create view you need 
    [self.view addSubview:desiredView]; 
    [self.addedSubviews addObject:desiredView]; 
    [self.view layoutSubviews]; 
} 

Здесь мы перебирать каждый вид и макет их

- (void)viewWillLayoutSubviews { 

    [super viewWillLayoutSubviews]; 

    float start_y_point = 0; //as you wish 
    float padding = 10; 

    [self.addedSubview enumerateObjectsUsingBlock:^(UIView *view, NSUInteger idx, BOOL * _Nonnull stop) { 
     view.frame = CGRectMake({<#CGFloat x#>}, start_y_point + padding, {<#CGFloat width#>}, {<#CGFloat height#>}) 
     start_y_point += view.frame.size.height + padding; 
    }]; 


} 

Последняя вещь есть кнопки

+0

жаль, что этот не работает для меня. –

+0

Но почему? Вы заменили все места в ваших потребностях? –

+0

Я заменил, но он не работает. –

 Смежные вопросы

  • Нет связанных вопросов^_^