Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
#1

Спрятать вьюшку - Objective-C

13.11.2015, 16:01. Просмотров 380. Ответов 0
Метки нет (Все метки)

Здравствуйте. Как можно спрятать вьюшку совсем т.е. не просто убрать ее видимость но и освободить занимаемое ей место (аналог view.setVisibility(View.GONE); из андроид)? Пробовал так
Objective-C
1
self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, 0, 0);
Но не работает - так и висит.

Добавлено через 1 час 44 минуты
Дело было в autoLayout, решил с помощью категории к UIView

UIView+Visibility.h
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
 
@interface UIView (Visibility)
 
typedef enum {
    VISIBILITY_VISIBLE,
    VISIBILITY_INVISIBLE,
    VISIBILITY_GONE
} ViewVisibility;
 
- (void)setVisibility:(ViewVisibility)visibility;
 
@end


UIView+Visibility.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#import "UIView+Visibility.h"
 
NSLayoutConstraint *heightConstraint;
NSLayoutConstraint *widthConstraint;
 
@implementation UIView (Visibility)
 
- (void) setVisibility: (ViewVisibility) visibility{
    switch (visibility){
        case VISIBILITY_GONE:
            [self setNullSize];
            [self setHidden:YES];
            break;
        case VISIBILITY_INVISIBLE:
            [self setNormalSize];
            [self setHidden:YES];
            break;
        case VISIBILITY_VISIBLE:
            [self setNormalSize];
            [self setHidden:NO];
        }
}
 
- (void) setNullSize{
    heightConstraint = [NSLayoutConstraint constraintWithItem:self
                                                          attribute:NSLayoutAttributeHeight
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:self
                                                          attribute:NSLayoutAttributeHeight
                                                         multiplier:0
                                                           constant:0];
    widthConstraint = [NSLayoutConstraint constraintWithItem:self
                                                                        attribute:NSLayoutAttributeWidth
                                                                        relatedBy:NSLayoutRelationEqual
                                                                           toItem:self
                                                                        attribute:NSLayoutAttributeWidth
                                                                       multiplier:0
                                                                         constant:0];
    [self addConstraint:heightConstraint];
    [self addConstraint:widthConstraint];
}
 
- (void) setNormalSize{
    [self removeConstraint:heightConstraint];
    [self removeConstraint:widthConstraint];
}
 
@end


Используется так
Objective-C
1
[view setVisibility:VISIBILITY_GONE];
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2015, 16:01     Спрятать вьюшку
Посмотрите здесь:

Как спрятать UIPopoverView для результатов поиска в UISearchBar - Objective-C
Был созан UISearchBar . Когда я нажимаю на него и начинаю вводить текст выскакивает UIPopoverView(1) с результатами поиска. Мне это не...

Передача параметра во вьюшку - C# MVC
Всем привет. Нужно из БД выводить запись. Запрос примерно такой. Позже оптимизирую SELECT TextValue FROM Texts WHERE TextID= (SELECT...

Как сделать вьюшку, чтобы она была поверх любых приложений? - Программирование Android
Например, как это сделано в ГеймХацкере. Нигде не могу нарыть. Говорят про AlertDialog, но это совсем не то, что мне нужно..

Передача поля в контроллер из вьюшки без пападания поля во вьюшку - C# MVC
Здравствуйте. Имеется контроллер: public class TestController { public long personID; ...

Спрятать скрипт - PHP
Необходимо спрятать php скрипт для того, чтобы в случаи взлома. Пользователь не смогу скачать его к себе... Собственно если...

спрятать длл - Delphi
как мне спрятать длл в ресурсы и потом ее оттудпа юзать? не записывая на диск и при явной загрузке! хелп камрады! Добавлено через 1...

Спрятать Window - C# WPF
Есть Window, в котором идет авторизация пользователя, в самом низу данного Window есть кнопочка со стрелочкой вверх. Каким образом можно...

Спрятать 2921 - Cisco
Делаю наброски сети, вопрос, как правильно спрятать 2921 ( для внешнего мира ), к ним будут споки цеплятся по ГРЕ АСЫ это дефолт для...

Спрятать Database - MS Access
Как спрятать Databasе? Куда это писать?

Спрятать приложение! - C#
Доброго времени суток!Я хотел спросить как спрятать приложение?Из диспетчера убрать в приложениях?А можно и из процессов? Пользуясь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru