Изменение позиции UIButton

У меня есть кнопка, настроенная в IB. У меня установлен IBOutlet и связанный с ним экранный объект. Есть ли способ программно изменить положение и / или размер кнопок? Я знаю, что вы можете изменить название и некоторые вещи, но я не вижу, как изменить его положение или размер.

введите описание изображения здесь

Теперь я хотел бы изменить его положение соответственно. Является ли это возможным? Если да, пожалуйста, дайте мне знать, как, поскольку я пытаюсь изменить положение своей кнопки в следующем коде, но это не работает в файле заголовка.

@property (nonatomic, strong) IBOutlet UIButton *mybuttonOutlet; 

В файле реализации:

 -(void)viewDidLoad { screenSizeHeight=[UIScreen mainScreen].bounds.size.height; if(screenSizeHeight==568) mybuttonOutlet.frame= CGRect(38, 464 ,157,25); if(screenSizeHeight==480) mybuttonOutlet.frame= CGRect(38, 364 ,157,25); } 

6 Solutions collect form web for “Изменение позиции UIButton”

Удалить Use Autolayout с помощью кнопки в IB или раскадровке.

Если вы хотите отрегулировать позиции с включенным автозапуском, вам придется изменить свой код следующим образом:

 -(void)viewDidLayoutSubviews { screenSizeHeight=[UIScreen mainScreen].bounds.size.height; if(screenSizeHeight==568) mybuttonOutlet.frame= CGRect(38, 464 ,157,25); if(screenSizeHeight==480) mybuttonOutlet.frame= CGRect(38, 364 ,157,25); } 

В основном вам необходимо выполнить любые настройки настраиваемого макета в методе viewDidLayoutSubviews, если включен Autolayout

 #import <UIKit/UIKit.h> @interface ViewController : UIViewController @end #import "ViewController.h" @interface ViewController () @property(nonatomic, strong) IBOutlet UIButton *theButton; // -(IBAction)moveTheButton:(id)sender; @end @implementation ViewController @synthesize theButton; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(IBAction)moveTheButton:(id)sender{ //set default position CGRect btFrame = theButton.frame; btFrame.origin.x = 145; btFrame.origin.y = 285; theButton.frame = btFrame; //position changing btFrame.origin.x += 40; theButton.frame = btFrame; //new size of button CGRect rect=CGRectMake(145, 285, 190, 30); [self.theButton setBounds:rect]; } @end 

В конце концов я пошел на ограничения. Получите выход ограничений, которые определяют положение кнопки (верхняя, нижняя, ведущая, конечная) и изменяют значения (-и) ограничений (-ов).

 self.constBtnSubmitTrailing.constraint = 50.0 

Это позволяет сохранить AutoLayout включенным.

Решение, которое я выяснил для этого, – создать новый объект View внутри основного представления и поместить мои «динамически изменяющиеся объекты» внутри этого представления (как показано на рисунке).

Иерархия объектов

Затем я использую Auto-Layout для размещения нового представления в основном представлении. Но bugButton: UIButton, который находится внутри нового представления, изменяет положение, как ожидалось:

 bugButton.frame.origin = CGPoint(x: newX, y: newY) 

Пожалуйста, выполните эту проверку.

 -(void)viewDidLoad{ if(self.mybuttonOutlet==nil)NSLog(@"Button is NIL"); } 

Теперь, если вы получите журнал «Button is NIL», возможно, вы забыли связать свою кнопку IB с переменной mybuttonOutlet.

  • Xcode 4.5.1 застревает при архивировании
  • Swift, iOS 8+ Framework
  • UITextView с белым фоном, отображающим цветной слой в инструментах и ​​симуляторе
  • Как получить доступ к атрибуту Runtime User Defined Runtime из объекта 'sender'?
  • Получение данных из plist
  • Здание с каркасом для какао
  • Низкие fps быстрые игровые площадки?
  • Массив из словарных клавиш в быстрых
  • Можете ли вы запустить конкретный Xcuitest из командной строки?
  • «Пропущенный список опций Apple LLVM 4.1 - Язык»
  • Как я могу рассказать каталог активов (.xcassets) использовать один и тот же образ для нескольких колодцев изображений?
  • Interesting Posts

    Срок действия сертификата подтверждения Apple push notifications

    Отмена набора асинхронных операций с отчетами о проделанной работе в iOS

    Приложение iOS не отвечает при записи пользовательского интерфейса

    Objective-C Несовместимые типы указателей, инициализирующие «XYZShoutingPerson *» с выражением типа «XYZPerson *»

    iOS UITableViewCell придется долгое нажатие выбрать элемент

    Создание файла в каталоге библиотеки на iphone

    Как обмениваться данными с помощью Watch Connectivity при работе с Core Data

    Я не могу поделиться содержимым моего приложения iOS с Facebook, когда установлено приложение Facebook

    Как я могу вернуться из получателя асинхронного свойства?

    Как сделать приложение iOS локализованным без раскадровки?

    Царство доступно из неправильной нити

    Swift – почему ScrollView не полноэкранный?

    Возможно ли перехватить включение / выключение iCloud в настройках -> iCloud -> Документ и данные?

    Вкладка заголовка раздела UITableView отсутствует

    Мой фоновый процесс приложения iphone заканчивается через 10 минут

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.