Обновление viewcontroller после загрузки.Файл Xib

#ios #xamarin #xamarin.ios

#iOS #xamarin #xamarin.ios

Вопрос:

У меня есть файл .Xib, который имеет пользовательский вид в Xamarin.ios. Этот файл Xib я добавил в viewcontroller. Теперь, согласно потоку, сначала загружаются методы класса viewcontroller, затем загружается файл Xib.

У меня есть определенные функциональные возможности, из-за которых мне нужно обновить метод в классе viewcontroller после загрузки файла .xib.

Допустим, я хочу изменить уменьшение ширины пользовательского представления в классе viewcontroller после загрузки файла .xib.

Это может быть просто, я новичок в ios, поэтому нужна помощь

Комментарии:

1. Давайте посмотрим, правильно ли я понял: вы хотите изменить width пользовательский вид, в котором также есть файл XIB. Это пользовательское представление является дочерним представлением в UIViewController . Правильно ли это?

2. Да, у меня есть контроллер, у которого есть файл .xib (пользовательский вид). Теперь, что мне нужно сделать, если я хочу изменить ширину этого пользовательского представления в контроллере после загрузки файла .xib. Я знаю, что могу сделать это, объявив ограничение в файле контроллера. Но я хочу сделать это после завершения загрузки файла .xib

Ответ №1:

Вы можете попробовать добавить ограничение для ширины пользовательского представления. Воспользуйтесь ограничением и измените его константу, когда требуется, и вызовите layout, если необходимо, для перезагрузки представления.

  _width.Constraint.Constant = 100;
 View.LayoutIfNeeded (); // The view could be custom view or view controller's view.
  

Комментарии:

1. Как я уже говорил в своих комментариях, я могу сделать это, объявив ограничение. Но у меня есть определенные функциональные возможности, из-за которых мне приходится вызывать метод viewcontroller для уменьшения ширины после того, как файл .xib loaded….In короче говоря, хотите обновить данные в viewcontroller после загрузки файла .xib

2. В какой операции жизненного цикла вы загружаете файл xib? Что именно вы имеете в виду под обновлением данных? Это обновляет значения в табличном представлении или что-то подобное?

3. Я загружаю это в viewDidLoad (). Обновление данных означает изменение ширины customview (.Xib-файл в контроллере). Проблема в том, что когда cutomview находится в классе viewcontroller — вызывается метод getData(), в зависимости от того, являются данные null или нет, я устанавливаю ширину этого пользовательского представления, используя ограничение, тот же getdata также вызывается в файле .xib

4. теперь, поскольку методы контроллера выполняются первыми — если в данных getdata отображается значение null, то ширина представления будет равна 0, но при вызове того же getdata в файле .xib данные не равны нулю, поэтому в этом случае я хочу отправить некоторые данные контроллеру, чтобы ширина снова вернулась к нормальной

5. Вы можете попробовать добавить общедоступный метод в свой пользовательский вид, чтобы возвращать bool, который указывает, являются ли данные нулевыми или нет public bool IsDataExist(){if(getData() == null) возвращает false; else возвращает true;} Далее в представлении view controllers появился вызов IsDataExist() и установка ширины пользовательского представления и вызов метода layout, если это необходимо, для обновления ограничений представления