0

голосов
1

ответ
16

Просмотры

Добавлено Autolayout в UITableViewCell, но я вижу неизвестное явление

Я добавил Autolayout к элементам в UITableViewCell, но у меня есть неизвестная ошибка. Все элементы, добавленные с AutoLayout будут выровнены по верхнему левому углу. Если добавить Auto Layout в General Ярлык: После сборки Результат: смещениями Общие этикетки в верхнем левом углу Это верно и для других предметов, а также. Если добавить Auto Layout в общее, Total, Final Ярлык: Там нет коды, связанной с ограничением. UITableViewCell также не имеет коды. В View Controller: FUNC Tableview (_ Tableview: UITableView, numberOfRowsInSection раздел: Int) -> Int {1} вернуться Func Tableview (_ Tableview: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {пусть клеток = tableView.dequeueReusableCell (withIdentifier: "ProcDetailMoreCell", для: indexPath), как! ProcDetailMoreCell возврата клеток} Func Tableview (_ Tableview: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {вернуться CGFloat (175)} Я не знаю, почему это происходит. Пожалуйста, помогите мне понять, почему эти результаты.
Enkha
1

голосов
1

ответ
46

Просмотры

Изменение размера .xib (клеток) по вертикали в Swift 4

Я создал .xib (клетка), который отображает хранить изображения и хранения информации. Серое это часть изображения, которая не изменяется и является UICollectionView. Все магазины имеют разные размеры, но в UICollectionView (который отображает изображения), они отображаются в виде шкалы Наполнять независимо от размера. Я хотел бы, чтобы .xib вертикального размера (UICollectionView), чтобы расти и сокращаться, чтобы соответствовать вертикальному размеру изображения. Что я должен делать?
Enkha
1

голосов
3

ответ
84

Просмотры

Не работает UITableView в cellForRowAt Но numberOfRowsInsection Работа в Swift

Я написал функцию, чтобы добавить ячейки в UITableView. numberOfRowsInSection работает, но cellForRowAt не работает. Класс ShopMenuViewCell: UITableViewCell {@IBOutlet слабый вар menuTableView: UITableView! вар menuPrice: MenuPrice! переопределить функ awakeFromNib () {super.awakeFromNib ()}} расширение ShopMenuViewCell {FUNC setView () {self.menuTableView.delegate = само self.menuTableView.dataSource = само self.menuTableView.regCells (клетки: [ "ShopMenuInformationCell"]) DispatchQueue .main.async {self.menuTableView.reloadData ()}}} расширение ShopMenuViewCell: UITableViewDelegate, UITableViewDataSource {FUNC Tableview (_ Tableview: UITableView, numberOfRowsInSection раздел: Int) -> Int {возвращение 1} функ Tableview (_ Tableview: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {охранник пусть ячейки = tableView.dequeueReusableCell (withIdentifier: "ShopMenuInformationCell", для: indexPath) как? ShopMenuInformationCell, пусть меню = self.menuPrice, пусть имя = menu.name, пусть цена = menu.amt еще {вернуть ShopMenuInformationCell ()} возвращение клеток}} В классе ShpMenuInformationCell.swift ShopMenuInformationCell: UITableViewCell {@IBOutlet слабый вар containerView: UIView! @IBOutlet слабого уага shopNameLabel: UILabel! @IBOutlet слабого уага menuNameLabel: UILabel! @IBOutlet слабого уага priceLabel: UILabel! переопределить функ awakeFromNib () {super.awakeFromNib ()}} Я видел ответ, чтобы добавить ViewController, но я не знаю, что делать, потому что это не раскадровки. (.Xib) Я думаю, это потому, что я добавляю UITableViewCell в классе UITableViewCell. Ты знаешь почему?
Enkha
0

голосов
0

ответ
21

Просмотры

Измените цвет всех кнопок клеток в Tableview

Я создал кнопку на TableViewCell. Когда кнопка нажата, цвет постоянно меняется на белый и синий. И ViewController имеет кнопку, чтобы изменить цвет всех ячеек. В ViewController: btnAllCheckBox.onTap {(водопроводную) в секции пусть = self.tableView.numberOfSections вар строк = 0 при 0 в ..
Enkha
0

голосов
1

ответ
39

Просмотры

How to soften begin and endUpdates in TableView

I have three Cells in TableView. It has a button on the first cell and when it is pressed, the vertical size of the first cell is expanded. In ViewController : func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { if indexPath.section == 1 { return 0 } else if indexPath.section == 0 { return CGFloat(expandedHeight) //700 //500 } else if indexPath.section == 2 { return 240 } return 133 } //I've modified some of my code, but it works this way. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if indexPath.section == 0 { let cell = tableView.dequeueReusableCell(withIdentifier: "one", for: indexPath) as! one return cell } else if indexPath.section == 1 { let cell = tableView.dequeueReusableCell(withIdentifier: "two", for: indexPath) as! two return cell } else if indexPath.section == 2 { let cell = tableView.dequeueReusableCell(withIdentifier: "thr", for: indexPath) as! thr return cell } return UITableViewCell() } func ExpandedButtonClick(_ height: Int) { tableView.beginUpdates() expandedHeight = height // 500 700 switch tableView.endUpdates() } In TableViewCell (one) : @IBAction func btnClickExpanded(_ sender: Any) { if let myViewController = parentViewController as? ViewController { if constraintExpend.constant == 500 { constraintExpend.constant = 700 myViewController.ExpandedButtonClick(700) } else { constraintExpend.constant = 500 myViewController.ExpandedButtonClick(500) } } } Everything worked perfectly, but there is a problem. Only the parts of the screen that I see should be animated, but the whole screen is moving. It is disturbing to see this. What if I want to animate only the expanded part? I want to expand while holding the screen fixed.
Enkha
2

голосов
1

ответ
39

Просмотры

Определение диапазона выбора соты в didSelectRowAt из UITableView В Swift 4

У меня есть UIImageView в TableViewCell. UIImageView будет функционировать как флажок. Я хочу, чтобы выполнить didSelectRowAt, когда я нажимаю часть клетки, кроме UIImageView. В настоящее время didSelectRowAt выполняется даже при нажатии в любом месте. Plz ответить, как отменить выполнение didSelectRowAt, нажав на UIImageView части клетки.
Enkha
3

голосов
1

ответ
101

Просмотры

Error: UICollectionView received layout attributes for a cell with an index path that does not exist in Swift

Я «https://www.raywenderlich.com/392-uicollectionview-custom-layout-tutorial-pinterest» Для создания пользовательского UICollectionView. (Для регулировки высоты ячейки) Если я прокручивать вверх, клетка будет продолжать быть добавлены, и прокручиваются сверху вниз, чтобы обновить. Там нет никаких проблем при запуске приложения и первоначально растут клетки. Однако, всегда есть ошибка при обновлении или переназначения количества ячеек. ОШИБКА: *** отказ Assertion в - [UICollectionViewData validateLayoutInRect:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore/UIKit-3698.93.8/UICollectionViewData.m:447 *** Нагрузочного приложение из-за неперехваченное исключение «NSInternalInconsistencyException», причина: «UICollectionView получил расположение атрибутов для элемента с индексом путем, который не существует: Таким образом,«IOS 10 ошибки:
Enkha
2

голосов
1

ответ
68

Просмотры

How to set the vertical length of xib as code in Swift

Я хотел бы изменить высоту View в XIb Размер инспектора гибко в коде. Я также хочу, чтобы изменить Высота Равно в Ограничений в UICollectionView в XIb. Сокращенный код: класс ShopImagesViewCell: UITableViewCell {@IBOutlet слабый вар imageCollectionView: UICollectionView! переопределение FUNC awakeFromNib () {super.awakeFromNib () // ......}} расширение ShopImagesViewCell {FUNC setView (URL: [String], isZzip: Bool) {self.imageCollectionView.delegate = само self.imageCollectionView.dataSource = само self.imageCollectionView.regCells (клетки: [ "ShopImageCollectionViewCell", "ShopNonImageCollectionViewCell"]) // ......}} расширение ShopImagesViewCell: UICollectionViewDelegateFlowLayout, UITableViewDelegate {FUNC Tableview (_ Tableview: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {вернуться CGFloat (291) // Это не работает. }} Когда XIb сначала загружается, оно выполняется только один раз, чтобы соответствовать по размеру. Изменение длины XIb высоты в коде и изменение высоты Равно из Constraintsd в UICollectionView в коде. Скажите, пожалуйста, где я должен использовать код.
Enkha
2

голосов
2

ответ
110

Просмотры

Call collectionView(_ :layout:sizeForItemAt:) in Swift 4

Я сделал галерею с помощью UICollectionView. Если опустить экран, изображение должно продолжать выходить и остановиться на 20. Код постоянно обновляется. Однако функция CollectionView (_: расположение: sizeForItemAt :), который устанавливает размер ячейки не работает. Таким образом, только 20 изображений непрерывно отображаются. На viewDidLoad (), если пусть layoutt = artCollectionView? .CollectionViewLayout, как? PinterestLayout {layoutt.delegate = само} установка ячейки функ CollectionView (_ CollectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {охранник пусть ячейки = collectionView.dequeueReusableCell (withReuseIdentifier: "HomeCollectionViewCell", для: indexPath) как? HomeCollectionViewCell, пусть искусство = self.artList еще {вернуть HomeCollectionViewCell ()}, если arts.count> indexPath. строка {пусть модель = искусство [indexPath.row] cell.imgView.sd_setImage (с: URLHelper.createEncodedURL (URL: model.thumburl), завершена: ноль)}} возвращением клеток обратного внутреннего размера ячейки HomeViewController: PinterestLayoutDelegate {FUNC CollectionView (_ CollectionView: UICollectionView, heightForPhotoAtIndexPath indexPath: IndexPath) -> CGFloat {вернуться CGFloat (300,0)}} в настоящее время функция выполняется только один раз при запуске приложения. Вы знаете, как запускать эту функцию каждый раз, когда я хочу? heightForPhotoAtIndexPath indexPath: IndexPath) -> CGFloat {вернуться CGFloat (300,0)}} В настоящее время функция выполняется только один раз, когда запускается приложение. Вы знаете, как запускать эту функцию каждый раз, когда я хочу? heightForPhotoAtIndexPath indexPath: IndexPath) -> CGFloat {вернуться CGFloat (300,0)}} В настоящее время функция выполняется только один раз, когда запускается приложение. Вы знаете, как запускать эту функцию каждый раз, когда я хочу?
Enkha
2

голосов
1

ответ
79

Просмотры

For in, go to next when I want in Swift 4

Я делаю около 20 пунктов клеток, используя для. Но в течение там есть DispatchQueue.main.async и в идет к следующему, прежде чем она заканчивается. Поэтому я хочу, чтобы закончили за ин после DispatchQueue.main.async закончено. Это код: для пункта в 0 .. <collectionView.numberOfItems (надрез: 0) {пусть indexPath = IndexPath (пункт: пункт, раздел: 0) вар photoHeight = CGFloat (50,0) _ = delegate.collectionView (CollectionView, heightForPhotoAtIndexPath : indexPath) {(значение) в DispatchQueue.main.async {photoHeight = значение пусть высота = self.cellPadding * 2 + photoHeight пусть кадр = CGRect (х: xOffset [колонка], у: YOffset [колонка], ширина: ColumnWidth, высота: высота) пусть insetFrame = frame.insetBy (дх: self.cellPadding, Dy: я. CELLPADDING) пусть атрибуты = UICollectionViewLayoutAttributes (forCellWith: indexPath) attributes.frame = insetFrame self.cache.append (атрибуты) self.contentHeight = макс (self.contentHeight, frame.maxY) YOffset [колонок] = YOffset [колонок] + колонок высоты = (колонка <self.numberOfColumns - 1)? (Колонка + 1): 0}} // DispatchQueue.main.async не кончить, но она работает здесь. } numberOfColumns - 1)? (Колонка + 1): 0}} // DispatchQueue.main.async не кончить, но она работает здесь. } numberOfColumns - 1)? (Колонка + 1): 0}} // DispatchQueue.main.async не кончить, но она работает здесь. }
Enkha
3

голосов
2

ответ
97

Просмотры

IntValue ?? 0 == -1? «-»: «+» Что это значит?

Я импортировать информацию о ценах и добавление + или -. Я поставил в заголовке код в печати (), и он работает, но я не знаю, что это значит. печать ( "\ (IntValue ?? 0 == -1? "-": "+")") Пожалуйста, объясните кратко мне.
Enkha