Изменение позиции 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.

  • Почему передача объекта NSString в параметр «format» XCTAssertTrue вызывает ошибку сборки?
  • Автоматически настраивать высоту UIView в подзону с помощью AutoLayout (Storyboard)
  • Могу ли я получить подсчет записей, соответствующих CKQuery из CloudKit?
  • Подключить объект в .xib к существующему IBAction
  • Main_iPhone.storyboard: Ошибка компиляции. Невозможно написать путь:
  • xcode NSURLConnection post return 200, но NSData всегда null?
  • Использование Cocoapods в Xcode 7.3
  • Что определяет, получит ли приложение iOS новый вид в iOS 7
  • Zbar SDK - отсутствует требуемая архитектура x86_64
  • Симулятор iOS 5
  • Могу ли я открывать события из пользовательских представлений для подключения через раскадровку?
  • Interesting Posts

    Как запустить поток в фоновом режиме приложения, который не повлияет на пользовательский интерфейс приложения

    Как удалить анимацию, нажав кнопку. стриж

    CollectionView дублировать ячейку при загрузке дополнительных данных

    Невозможно вызвать метод подключения делегата UICollectionView

    От XIB до раскадровки

    Как предотвратить или обнаружить «Симуляция местоположения» Xcode в вашей заявке на производство?

    При выпуске объектов в пользовательском приложении класса сокета

    UiTextField изменяет шрифт во время редактирования в Swift 1.2 и 2.0

    iOS динамическая высота UITableViewCell и heightForRowAtIndexPath

    Как получить идентификатор оборудования Apple Watch?

    Конструктор интерфейса Xcode 6 не показывает пользовательский класс

    NSPredicate в showBluetoothAccessoryPickerWithNameFilter

    Преобразование длинного NSString в NSNumber

    replaykit startrecording иногда никогда не входит в обработчик завершения

    iOS истекает

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