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

Objective-C

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
Vl.zemtsov
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 32
#1

Положение кнопки - Objective-C

21.04.2013, 20:30. Просмотров 2113. Ответов 17
Метки нет (Все метки)

В зависимости от положения кнопки у меня должны выполняться различные функции от нажания кнопки.
Т.е. если кнопка в одном положении, то выполнится одно действие, если в другом, то другое.

Я подумал создать CGRect и сравнивать координаты кнопки с ним, но не получилось:
Objective-C
1
2
3
CGRect newRect = CGRectMake(0, 100, 768, 100);
    if (self.Button2.frame==newRect)
        //Действие
Однако такое сравнение невозможно.
+Тут присутствуют лишние значения Width и Heigth, которые мне не нужны.

Как правильно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2013, 20:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Положение кнопки (Objective-C):

Программно изменить положение кнопки/поля/бара - Программирование iOS
ДОбрый вечер. Пробовал 2мя способами поменять положение объекта на вьюшке. Со смещением по идее точно должно работать, но нет. ; ...

Неверное положение отображений - Objective-C
Всем привет! Скажите почему так Если добавлю иконку и сразу задам размер цифрами, то норм, а если хоть на пиксель потом сдвину или...

Как поменчять положение кнопки - Delphi
То-есть у меня есть Label1, Label2, Button1. Если Label2.Visible:=False кнопка будет стоять на месте, а если Label2.Visible:=true тогда...

Как контролировать положение кнопки на форме - C#
моя первая програма на С(шарп), так что прошу не слишком критиковать...проблема в том что я не могу добится что б кнопка не у бигала за...

Как менять положение кнопки по ресайзу диалога? - C++
Есть диалог, в нижнем правом углу кнопочка. Как сделать, чтобы при OnSize диалога кнопка оставалась снизу-справа?

Можно ли задать положение ползунка прокрутки в ScrollBar при нажатии кнопки - C#
Здравствуйте, можете ли подсказать возможно ли задать положение полосы прокрутки с помощью кнопки, например чтобы при нажатии кнопки...

17
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
21.04.2013, 21:25 #2
Что за ужасный подход?
Не используйте для этого фреймы. Либо проверку на указатель - но для этого нужно хранить указатели на объекты кнопок, либо по свойству tag, что есть у каждой UIView, наследником коего и является UIButton.
0
Vl.zemtsov
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 32
21.04.2013, 21:59  [ТС] #3
Цитата Сообщение от zulkis Посмотреть сообщение
Что за ужасный подход?
Не используйте для этого фреймы. Либо проверку на указатель - но для этого нужно хранить указатели на объекты кнопок, либо по свойству tag, что есть у каждой UIView, наследником коего и является UIButton.
Да я сам понимаю, что подход ужасный) учусь потихоньку.
А можно по подробнее о свойстве tag и о том как его использовать. В мануале не могу найти

Добавлено через 14 минут
Как я понял tag это некоторый идентификатор объекта. Как его использовать в моем случае?
+Как использовать проверку на указатель?
0
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
21.04.2013, 22:49 #4
Tag(англ. бирка), это никакой не идентификатор, это просто свойство объекта типа NSInteger, для семантики названо tag - вы простро "помечаете" нужную Вам кнопку определенным числом. И все, а потом сравниваете tag данной кнопки с заранее известным числом.

Так как указатель это переменная, Вы можете сравнить указатели на объекты, и удостовериться, что это именно нужный Вам объект - в данном случае кнопка.

Цитата Сообщение от Vl.zemtsov Посмотреть сообщение
Как использовать проверку на указатель?
А теперь вопрос - у Вас хоть какая либо минимальная база связанная с информационными технологиями есть?
Это я не сарказмом - просто вопрос, чтобы понимать как строить разговор.
0
Vl.zemtsov
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 32
21.04.2013, 22:57  [ТС] #5
Цитата Сообщение от zulkis Посмотреть сообщение
Tag(англ. бирка), это никакой не идентификатор, это просто свойство объекта типа NSInteger, для семантики названо tag - вы простро "помечаете" нужную Вам кнопку определенным числом. И все, а потом сравниваете tag данной кнопки с заранее известным числом.

Так как указатель это переменная, Вы можете сравнить указатели на объекты, и удостовериться, что это именно нужный Вам объект - в данном случае кнопка.


А теперь вопрос - у Вас хоть какая либо минимальная база связанная с информационными технологиями есть?
Это я не сарказмом - просто вопрос, чтобы понимать как строить разговор.
На счет tag вроде понял. Перед тем как описывать свойства кнопки я могу приписать ей tag, потом изменять его, а если мне надо будет вернуть кнопке изначальное состояние, то могу написать: если tag'и не совпадают, то изменить свойства кнопки на изначальные (вручную можно).


На счет указателей:
Я, на самом деле, кое-как подкован в программировании C# и C++ (В С# я поподкованее буду). В С++ конечно связывался с указателями и с тем как они работают и как их применять.
Однако по многим вопросам Obj C приводит меня в ступор. Скорее всего из-за того, что мало документации. Лично я пользуюсь документации в самом XCode, но по поиску она плохо работает.
0
Vorona
Peace 2 all shining faces
669 / 531 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
21.04.2013, 23:34 #6
омг, мало документации...
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
22.04.2013, 00:00 #7
у apple помойму наоборот самая понятная документация, все очень хорошо разжевано и описано. В xcode можно получить описание любого метода,класса и т.д. все очень и очень удобно. Конечно должна быть какая-то начальная база знаний (особенно англ языка )

Добавлено через 2 минуты
Цитата Сообщение от Vl.zemtsov Посмотреть сообщение
Перед тем как описывать свойства кнопки я могу приписать ей tag, потом изменять его, а если мне надо будет вернуть кнопке изначальное состояние, то могу написать: если tag'и не совпадают, то изменить свойства кнопки на изначальные (вручную можно).
Честно говоря не понял какие свойства вы собираетесь менять с помощью tag
0
Vl.zemtsov
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 32
22.04.2013, 00:36  [ТС] #8
Цитата Сообщение от Xavier Посмотреть сообщение
у apple помойму наоборот самая понятная документация, все очень хорошо разжевано и описано. В xcode можно получить описание любого метода,класса и т.д. все очень и очень удобно. Конечно должна быть какая-то начальная база знаний (особенно англ языка )

Добавлено через 2 минуты


Честно говоря не понял какие свойства вы собираетесь менять с помощью tag
Самая большая проблема именно в незнании англ. языка.
Ну я свободно могу прочитать и перевести описание класса какого-то, это не проблема. Проблема в том, что бы найти, где этот класс описан (вот именно это сложно с моим уровнем англ).

Когда я говорил про мало документации (пусть меня грешного простят) я говорил про русский язык.

Так вот на счет того что мне нужно.
Нужна мне элементарная вещь:
Мне нужно что бы при нажатии кнопки другая кнопка меняла свое место расположение. Всего есть два месторасположение, которое может приобрести кнопка №2. Причем эти месторасположения должны чередоваться при нажатии кнопки №1. (все тоже самое было бы и для одной кнопки, но раз описываю, то описываю как мне надо).
Я подумал можно же через tag это сделать?
Присвоить одно из месторасположений какому-нибудь tag и в зависимости от того, совпадает ли tag месторасположения кнопки на данный момент с тем, который мы сохранили, делать какие-то действия.

По-моему как-то мудрено получается, наверняка это как-то совсем элементарно делается.




+На счет документации.
Можете посоветовать какой-нибудь учебник/сборник, обучение в котором построено на примерах. Теория теорией, но когда сам прогаешь все запоминается быстрее)))
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
22.04.2013, 01:04 #9
Цитата Сообщение от Vl.zemtsov Посмотреть сообщение
Мне нужно что бы при нажатии кнопки другая кнопка меняла свое место расположение. Всего есть два месторасположение, которое может приобрести кнопка №2. Причем эти месторасположения должны чередоваться при нажатии кнопки №1.
Если я правильно понял то попробуй так:
Objective-C
1
2
3
4
5
6
7
8
9
-(IBAction)move2:(id)sender{
    if(_button2.tag==111){
        _button2.frame=CGRectMake(10.0f, 200.0f, 81.0f, 44.0f);
        _button2.tag=0;
    } else{
        _button2.frame=CGRectMake(124.0f, 138.0f, 81.0f, 44.0f);
        _button2.tag=111;
    }
}
1
Vl.zemtsov
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 32
22.04.2013, 01:11  [ТС] #10
Цитата Сообщение от Xavier Посмотреть сообщение
Если я правильно понял то попробуй так:
Objective-C
1
2
3
4
5
6
7
8
9
-(IBAction)move2:(id)sender{
    if(_button2.tag==111){
        _button2.frame=CGRectMake(10.0f, 200.0f, 81.0f, 44.0f);
        _button2.tag=0;
    } else{
        _button2.frame=CGRectMake(124.0f, 138.0f, 81.0f, 44.0f);
        _button2.tag=111;
    }
}
что означает _button2?
я обычно использую self.button2
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
22.04.2013, 01:16 #11
Цитата Сообщение от Vl.zemtsov Посмотреть сообщение
что означает _button2?
я обычно использую self.button2
ну напиши вместо _button self.button в данном случае особой разницы для тебя нету.Это я просто по привычке так написал

Впринципе можно и так сделать
Objective-C
1
2
3
-(IBAction)move2:(id)sender{
    _button2.frame=(_button2.frame.origin.x==10 && _button2.frame.origin.y==200) ?CGRectMake(124, 138, 81, 44):CGRectMake(10, 200, 81, 44);
}
1
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
22.04.2013, 08:11 #12
Цитата Сообщение от Xavier Посмотреть сообщение
-(IBAction)move2id)sender{
_button2.frame=(_button2.frame.origin.x==10 && _button2.frame.origin.y==200) ?CGRectMake(124, 138, 81, 44):CGRectMake(10, 200, 81, 44);
}

На счет tag вроде понял. Перед тем как описывать свойства кнопки я могу приписать ей tag, потом изменять его, а если мне надо будет вернуть кнопке изначальное состояние, то могу написать: если tag'и не совпадают, то изменить свойства кнопки на изначальные (вручную можно).
Зачем изменять tag кнопки? Создайте 2 кнопки, они будут в разных местах, это очевидно.
Затем присвойте tag одной - 1, другой - 2, это тоже очевидно.
Затем повесьте обработчик на событие(например UIControlEventTouchUpInside - "возвратное движение тача(вверх) внутри зоны кнопки") - для Обеих кнопок одно.
Затем внутри этого метода проверяйте у кнопки, которая будет 1м аргументом в данном методе, tag == 1 || tag == 2. В зависимости от этого делаете разные вещи.

Не по теме:

Слишком много затем.

0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
22.04.2013, 11:28 #13
Мне нужно что бы при нажатии кнопки-1 другая кнопка-2 меняла свое место расположение. Всего есть два месторасположения, которые может приобрести кнопка №2.
------Это он написал. Я как понял так и ответил. Пусть соединит метод который я предложил с первой кнопкой и тогда при нажатии на нее вторая кнопка будет изменять свое местоположение. Я мог конечно не правильно понять, ну тогда извините.
0
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
22.04.2013, 11:40 #14
Xavier, нет, дело не в том, как Вы поняли, дело в том, как ответ написан.
Убойно.
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
22.04.2013, 11:57 #15
Пусть будет так, вам наверно виднее
0
22.04.2013, 11:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2013, 11:57
Привет! Вот еще темы с ответами:

Изменяйте положение командной кнопки на форме с помощью горизонтальной и вертикальной полос прокрутки - Visual Basic .NET
Всем привет! Мне нужно написать програмку: Изменяйте положение командной кнопки на форме с помощью горизонтальной и вертикальной полос...

Привязать положение кнопки и автоматическое изменение размера TextBox под изменяемые размеры формы - C#
ребят, читал на мсдн, но ничего не понял. как автоматически привязать положение кнопки и автоматическое изменение текстбокса под...

Как изменить положение кнопки "Еще." в DJ Catalog2 на Joomla3.3 - Joomla
Не могу понять как изменить положение кнопки "Еще..." в компоненте DJ Catalog2 на Joomla 3.3, т.е. это каталог товаров и выводятся они...

Нажатие каждой кнопки приводит к ее сокрытию и показу ранее скрытой кнопки - Delphi
Нажатие каждой кнопки приводит к ее сокрытию и показу ранее скрытой кнопки. При этом номер (название) ранее скрытой кнопки отображается в...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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