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

Objective-C

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

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

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

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

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

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

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

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

Цитата Сообщение от Vl.zemtsov Посмотреть сообщение
Как использовать проверку на указатель?
А теперь вопрос - у Вас хоть какая либо минимальная база связанная с информационными технологиями есть?
Это я не сарказмом - просто вопрос, чтобы понимать как строить разговор.
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, но по поиску она плохо работает.
Vorona
Peace 2 all shining faces
666 / 528 / 44
Регистрация: 05.03.2010
Сообщений: 1,271
21.04.2013, 23:34     Положение кнопки #6
омг, мало документации...
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
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 месторасположения кнопки на данный момент с тем, который мы сохранили, делать какие-то действия.

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




+На счет документации.
Можете посоветовать какой-нибудь учебник/сборник, обучение в котором построено на примерах. Теория теорией, но когда сам прогаешь все запоминается быстрее)))
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;
    }
}
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
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);
}
zulkis
681 / 608 / 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. В зависимости от этого делаете разные вещи.

Не по теме:

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

Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
22.04.2013, 11:28     Положение кнопки #13
Мне нужно что бы при нажатии кнопки-1 другая кнопка-2 меняла свое место расположение. Всего есть два месторасположения, которые может приобрести кнопка №2.
------Это он написал. Я как понял так и ответил. Пусть соединит метод который я предложил с первой кнопкой и тогда при нажатии на нее вторая кнопка будет изменять свое местоположение. Я мог конечно не правильно понять, ну тогда извините.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
22.04.2013, 11:40     Положение кнопки #14
Xavier, нет, дело не в том, как Вы поняли, дело в том, как ответ написан.
Убойно.
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
22.04.2013, 11:57     Положение кнопки #15
Пусть будет так, вам наверно виднее
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
22.04.2013, 12:44     Положение кнопки #16
Xavier, вот это и огорчает. Потом с таким кодом столкнешься, и еще раз огорчишься
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
22.04.2013, 13:21     Положение кнопки #17
А я не говорю что у меня идеальный код я сам только учусь и опыта у меня не много. Вы лучше подскажите как лучше что б в будущем не ошибаться ведь хорошее написание кода приходит с опытом. Как говорится все мы люди и все мы можем ошибаться, главное учитывать эти ошибки в будущем и не наступать на одни и те же грабли.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2013, 02:28     Положение кнопки
Еще ссылки по теме:

Objective-C Запуск приложения при трехкратном нажатии кнопки Home
Objective-C Неверное положение отображений
Objective-C Нарисовать линию по клику кнопки
Текст кнопки назад в навигационном контроллере Objective-C
Изменить программно название кнопки Objective-C

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

Или воспользуйтесь поиском по форуму:
Dargo
1 / 1 / 0
Регистрация: 23.04.2013
Сообщений: 10
23.04.2013, 02:28     Положение кнопки #18
А как должно меняться положение кнопки?
Если не анимированно - то вполне реально сделать две разные кнопки, и просто менять их альфу по необходимости…
Если анимированно - то это уже другой вопрос…
Yandex
Объявления
23.04.2013, 02:28     Положение кнопки
Ответ Создать тему
Опции темы

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