UICollectionViewDelegateFlowLayout
и был задан в качестве delegate
у коллекции. Тогда вы сможете задать размер ячейки, которая заполнит экран по ширине:extension /*Ваш класс*/ : UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: UIScreen.main.bounds.size.width - 2*/*размер вашего отступа*/, height: /*желаемая высота*/)
}
}
DispatchQueue.main.async { [weak self] in
self?.label.text = temp
}
weakSelf
не стоит. просто [weak self]
отлично работает. В такой ситуации код читается легче и подсветка синтаксиса работает корректнее;if let source = parsedObject as? [String: Any], let text = source["text"] as? [String] {
for temp in text {
print(temp)
self?.label.text = temp
}
}
var cycles = 0
, поставьте условие if i + 1 > exersiseName.count
первым и модифицируйте следующим образом:if i + 1 > exersiseName.count { //Конец цикла
count+=1
if (count >= sets) {
timerLabel.text = "0"
timer.invalidate()
timerRunning = false
}else{
i = 0
}
} //важно: не надо ставить здесь else
if ....
CMAttitude
имеет свойство rotationMatrix
, которое позволяет преобразовать координаты из СК, связанной с телефоном, в СК, связанную с Землей. С помощью нее можно определить ускорение строго вдоль вертикальной оси:CMRotationMatrix *attitude = motionManager.deviceMotion.attitude.rotationMatrix;
CMAcceleration *acceleration = motionManager.accelerometerData.acceleration;
double ay = attitude.m21*acceleration.x + attitude.m22*acceleration.y + attitude.m23*acceleration.z;
motionManager
должен быть проинициализирован и активирован.