mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-01 04:08:07 +00:00
Various fixes
This commit is contained in:
parent
7e00550f82
commit
0d448b39cc
@ -455,6 +455,8 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
var toolIsFocused = false
|
var toolIsFocused = false
|
||||||
var currentColor: DrawingColor
|
var currentColor: DrawingColor
|
||||||
var selectedEntity: DrawingEntity?
|
var selectedEntity: DrawingEntity?
|
||||||
|
|
||||||
|
var lastFontSize: CGFloat = 0.5
|
||||||
|
|
||||||
init(context: AccountContext, updateToolState: ActionSlot<DrawingToolState>, insertEntity: ActionSlot<DrawingEntity>, deselectEntity: ActionSlot<Void>, updatePlayback: ActionSlot<Bool>, present: @escaping (ViewController) -> Void) {
|
init(context: AccountContext, updateToolState: ActionSlot<DrawingToolState>, insertEntity: ActionSlot<DrawingEntity>, deselectEntity: ActionSlot<Void>, updatePlayback: ActionSlot<Bool>, present: @escaping (ViewController) -> Void) {
|
||||||
self.context = context
|
self.context = context
|
||||||
@ -1109,131 +1111,13 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var editingText = false
|
||||||
|
var fontSize: CGFloat?
|
||||||
if let textEntity = state.selectedEntity as? DrawingTextEntity, let entityView = textEntity.currentEntityView as? DrawingTextEntityView, entityView.isEditing {
|
if let textEntity = state.selectedEntity as? DrawingTextEntity, let entityView = textEntity.currentEntityView as? DrawingTextEntityView, entityView.isEditing {
|
||||||
let topInset = environment.safeInsets.top + 31.0
|
editingText = true
|
||||||
let textSize = textSize.update(
|
fontSize = textEntity.fontSize
|
||||||
component: TextSizeSliderComponent(
|
state.lastFontSize = textEntity.fontSize
|
||||||
value: textEntity.fontSize,
|
|
||||||
updated: { [weak state] size in
|
|
||||||
state?.updateBrushSize(size)
|
|
||||||
}
|
|
||||||
),
|
|
||||||
availableSize: CGSize(width: 30.0, height: 240.0),
|
|
||||||
transition: context.transition
|
|
||||||
)
|
|
||||||
context.add(textSize
|
|
||||||
.position(CGPoint(x: textSize.size.width / 2.0, y: topInset + (context.availableSize.height - topInset - environment.inputHeight) / 2.0))
|
|
||||||
.appear(Transition.Appear { _, view, transition in
|
|
||||||
transition.animateAlpha(view: view, from: 0.0, to: 1.0)
|
|
||||||
|
|
||||||
transition.animatePosition(view: view, from: CGPoint(x: -33.0, y: 0.0), to: CGPoint(), additive: true)
|
|
||||||
})
|
|
||||||
.disappear(Transition.Disappear { view, transition, completion in
|
|
||||||
transition.setAlpha(view: view, alpha: 0.0, completion: { _ in
|
|
||||||
completion()
|
|
||||||
})
|
|
||||||
transition.animatePosition(view: view, from: CGPoint(), to: CGPoint(x: -33.0, y: 0.0), additive: true)
|
|
||||||
})
|
|
||||||
)
|
|
||||||
|
|
||||||
let textCancelButton = textCancelButton.update(
|
|
||||||
component: Button(
|
|
||||||
content: AnyComponent(
|
|
||||||
Text(text: "Cancel", font: Font.regular(17.0), color: .white)
|
|
||||||
),
|
|
||||||
action: { [weak state] in
|
|
||||||
if let entity = state?.selectedEntity as? DrawingTextEntity, let entityView = entity.currentEntityView as? DrawingTextEntityView {
|
|
||||||
entityView.endEditing(reset: true)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
),
|
|
||||||
availableSize: CGSize(width: 100.0, height: 30.0),
|
|
||||||
transition: context.transition
|
|
||||||
)
|
|
||||||
context.add(textCancelButton
|
|
||||||
.position(CGPoint(x: environment.safeInsets.left + textCancelButton.size.width / 2.0 + 13.0, y: environment.safeInsets.top + 31.0))
|
|
||||||
.appear(.default(scale: true, alpha: true))
|
|
||||||
.disappear(.default(scale: true, alpha: true))
|
|
||||||
)
|
|
||||||
|
|
||||||
let textDoneButton = textDoneButton.update(
|
|
||||||
component: Button(
|
|
||||||
content: AnyComponent(
|
|
||||||
Text(text: "Done", font: Font.semibold(17.0), color: .white)
|
|
||||||
),
|
|
||||||
action: { [weak state] in
|
|
||||||
if let entity = state?.selectedEntity as? DrawingTextEntity, let entityView = entity.currentEntityView as? DrawingTextEntityView {
|
|
||||||
entityView.endEditing()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
),
|
|
||||||
availableSize: CGSize(width: 100.0, height: 30.0),
|
|
||||||
transition: context.transition
|
|
||||||
)
|
|
||||||
context.add(textDoneButton
|
|
||||||
.position(CGPoint(x: context.availableSize.width - environment.safeInsets.right - textDoneButton.size.width / 2.0 - 13.0, y: environment.safeInsets.top + 31.0))
|
|
||||||
.appear(.default(scale: true, alpha: true))
|
|
||||||
.disappear(.default(scale: true, alpha: true))
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
let undoButton = undoButton.update(
|
|
||||||
component: Button(
|
|
||||||
content: AnyComponent(
|
|
||||||
Image(image: state.image(.undo))
|
|
||||||
),
|
|
||||||
isEnabled: state.drawingViewState.canUndo,
|
|
||||||
action: {
|
|
||||||
performAction.invoke(.undo)
|
|
||||||
}
|
|
||||||
).minSize(CGSize(width: 44.0, height: 44.0)).tagged(undoButtonTag),
|
|
||||||
availableSize: CGSize(width: 24.0, height: 24.0),
|
|
||||||
transition: context.transition
|
|
||||||
)
|
|
||||||
context.add(undoButton
|
|
||||||
.position(CGPoint(x: environment.safeInsets.left + undoButton.size.width / 2.0 + 2.0, y: environment.safeInsets.top + 31.0))
|
|
||||||
.appear(.default(scale: true, alpha: true))
|
|
||||||
.disappear(.default(scale: true, alpha: true))
|
|
||||||
)
|
|
||||||
|
|
||||||
if state.drawingViewState.canRedo {
|
|
||||||
let redoButton = redoButton.update(
|
|
||||||
component: Button(
|
|
||||||
content: AnyComponent(
|
|
||||||
Image(image: state.image(.redo))
|
|
||||||
),
|
|
||||||
action: {
|
|
||||||
performAction.invoke(.redo)
|
|
||||||
}
|
|
||||||
).minSize(CGSize(width: 44.0, height: 44.0)).tagged(redoButtonTag),
|
|
||||||
availableSize: CGSize(width: 24.0, height: 24.0),
|
|
||||||
transition: context.transition
|
|
||||||
)
|
|
||||||
context.add(redoButton
|
|
||||||
.position(CGPoint(x: environment.safeInsets.left + undoButton.size.width + 2.0 + redoButton.size.width / 2.0, y: environment.safeInsets.top + 31.0))
|
|
||||||
.appear(.default(scale: true, alpha: true))
|
|
||||||
.disappear(.default(scale: true, alpha: true))
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
let clearAllButton = clearAllButton.update(
|
|
||||||
component: Button(
|
|
||||||
content: AnyComponent(
|
|
||||||
Text(text: "Clear All", font: Font.regular(17.0), color: .white)
|
|
||||||
),
|
|
||||||
isEnabled: state.drawingViewState.canClear,
|
|
||||||
action: {
|
|
||||||
performAction.invoke(.clear)
|
|
||||||
}
|
|
||||||
).tagged(clearAllButtonTag),
|
|
||||||
availableSize: CGSize(width: 100.0, height: 30.0),
|
|
||||||
transition: context.transition
|
|
||||||
)
|
|
||||||
context.add(clearAllButton
|
|
||||||
.position(CGPoint(x: context.availableSize.width - environment.safeInsets.right - clearAllButton.size.width / 2.0 - 13.0, y: environment.safeInsets.top + 31.0))
|
|
||||||
.appear(.default(scale: true, alpha: true))
|
|
||||||
.disappear(.default(scale: true, alpha: true))
|
|
||||||
)
|
|
||||||
|
|
||||||
if state.drawingViewState.canZoomOut {
|
if state.drawingViewState.canZoomOut {
|
||||||
let zoomOutButton = zoomOutButton.update(
|
let zoomOutButton = zoomOutButton.update(
|
||||||
component: Button(
|
component: Button(
|
||||||
@ -1258,6 +1142,119 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let topInset = environment.safeInsets.top + 31.0
|
||||||
|
let textSize = textSize.update(
|
||||||
|
component: TextSizeSliderComponent(
|
||||||
|
value: fontSize ?? state.lastFontSize,
|
||||||
|
updated: { [weak state] size in
|
||||||
|
state?.updateBrushSize(size)
|
||||||
|
}
|
||||||
|
),
|
||||||
|
availableSize: CGSize(width: 30.0, height: 240.0),
|
||||||
|
transition: context.transition
|
||||||
|
)
|
||||||
|
context.add(textSize
|
||||||
|
.position(CGPoint(x: editingText ? textSize.size.width / 2.0 : textSize.size.width / 2.0 - 33.0, y: topInset + (context.availableSize.height - topInset - environment.inputHeight) / 2.0))
|
||||||
|
)
|
||||||
|
|
||||||
|
let undoButton = undoButton.update(
|
||||||
|
component: Button(
|
||||||
|
content: AnyComponent(
|
||||||
|
Image(image: state.image(.undo))
|
||||||
|
),
|
||||||
|
isEnabled: state.drawingViewState.canUndo,
|
||||||
|
action: {
|
||||||
|
performAction.invoke(.undo)
|
||||||
|
}
|
||||||
|
).minSize(CGSize(width: 44.0, height: 44.0)).tagged(undoButtonTag),
|
||||||
|
availableSize: CGSize(width: 24.0, height: 24.0),
|
||||||
|
transition: context.transition
|
||||||
|
)
|
||||||
|
context.add(undoButton
|
||||||
|
.position(CGPoint(x: environment.safeInsets.left + undoButton.size.width / 2.0 + 2.0, y: environment.safeInsets.top + 31.0))
|
||||||
|
.scale(editingText ? 0.01 : 1.0)
|
||||||
|
.opacity(editingText ? 0.0 : 1.0)
|
||||||
|
)
|
||||||
|
|
||||||
|
if state.drawingViewState.canRedo && !editingText {
|
||||||
|
let redoButton = redoButton.update(
|
||||||
|
component: Button(
|
||||||
|
content: AnyComponent(
|
||||||
|
Image(image: state.image(.redo))
|
||||||
|
),
|
||||||
|
action: {
|
||||||
|
performAction.invoke(.redo)
|
||||||
|
}
|
||||||
|
).minSize(CGSize(width: 44.0, height: 44.0)).tagged(redoButtonTag),
|
||||||
|
availableSize: CGSize(width: 24.0, height: 24.0),
|
||||||
|
transition: context.transition
|
||||||
|
)
|
||||||
|
context.add(redoButton
|
||||||
|
.position(CGPoint(x: environment.safeInsets.left + undoButton.size.width + 2.0 + redoButton.size.width / 2.0, y: environment.safeInsets.top + 31.0))
|
||||||
|
.appear(.default(scale: true, alpha: true))
|
||||||
|
.disappear(.default(scale: true, alpha: true))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
let clearAllButton = clearAllButton.update(
|
||||||
|
component: Button(
|
||||||
|
content: AnyComponent(
|
||||||
|
Text(text: "Clear All", font: Font.regular(17.0), color: .white)
|
||||||
|
),
|
||||||
|
isEnabled: state.drawingViewState.canClear,
|
||||||
|
action: {
|
||||||
|
performAction.invoke(.clear)
|
||||||
|
}
|
||||||
|
).tagged(clearAllButtonTag),
|
||||||
|
availableSize: CGSize(width: 100.0, height: 30.0),
|
||||||
|
transition: context.transition
|
||||||
|
)
|
||||||
|
context.add(clearAllButton
|
||||||
|
.position(CGPoint(x: context.availableSize.width - environment.safeInsets.right - clearAllButton.size.width / 2.0 - 13.0, y: environment.safeInsets.top + 31.0))
|
||||||
|
.scale(editingText ? 0.01 : 1.0)
|
||||||
|
.opacity(editingText ? 0.0 : 1.0)
|
||||||
|
)
|
||||||
|
|
||||||
|
let textCancelButton = textCancelButton.update(
|
||||||
|
component: Button(
|
||||||
|
content: AnyComponent(
|
||||||
|
Text(text: environment.strings.Common_Cancel, font: Font.regular(17.0), color: .white)
|
||||||
|
),
|
||||||
|
action: { [weak state] in
|
||||||
|
if let entity = state?.selectedEntity as? DrawingTextEntity, let entityView = entity.currentEntityView as? DrawingTextEntityView {
|
||||||
|
entityView.endEditing(reset: true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
),
|
||||||
|
availableSize: CGSize(width: 100.0, height: 30.0),
|
||||||
|
transition: context.transition
|
||||||
|
)
|
||||||
|
context.add(textCancelButton
|
||||||
|
.position(CGPoint(x: environment.safeInsets.left + textCancelButton.size.width / 2.0 + 13.0, y: environment.safeInsets.top + 31.0))
|
||||||
|
.scale(editingText ? 1.0 : 0.01)
|
||||||
|
.opacity(editingText ? 1.0 : 0.0)
|
||||||
|
)
|
||||||
|
|
||||||
|
let textDoneButton = textDoneButton.update(
|
||||||
|
component: Button(
|
||||||
|
content: AnyComponent(
|
||||||
|
Text(text: environment.strings.Common_Done, font: Font.semibold(17.0), color: .white)
|
||||||
|
),
|
||||||
|
action: { [weak state] in
|
||||||
|
if let entity = state?.selectedEntity as? DrawingTextEntity, let entityView = entity.currentEntityView as? DrawingTextEntityView {
|
||||||
|
entityView.endEditing()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
),
|
||||||
|
availableSize: CGSize(width: 100.0, height: 30.0),
|
||||||
|
transition: context.transition
|
||||||
|
)
|
||||||
|
context.add(textDoneButton
|
||||||
|
.position(CGPoint(x: context.availableSize.width - environment.safeInsets.right - textDoneButton.size.width / 2.0 - 13.0, y: environment.safeInsets.top + 31.0))
|
||||||
|
.scale(editingText ? 1.0 : 0.01)
|
||||||
|
.opacity(editingText ? 1.0 : 0.0)
|
||||||
|
)
|
||||||
|
|
||||||
var isEditingSize = false
|
var isEditingSize = false
|
||||||
if state.toolIsFocused {
|
if state.toolIsFocused {
|
||||||
isEditingSize = true
|
isEditingSize = true
|
||||||
@ -1746,7 +1743,7 @@ public class DrawingScreen: ViewController, TGPhotoDrawingInterfaceController {
|
|||||||
self.performAction.connect { [weak self] action in
|
self.performAction.connect { [weak self] action in
|
||||||
if let strongSelf = self {
|
if let strongSelf = self {
|
||||||
if action == .clear {
|
if action == .clear {
|
||||||
let actionSheet = ActionSheetController(presentationData: strongSelf.presentationData)
|
let actionSheet = ActionSheetController(presentationData: strongSelf.presentationData.withUpdated(theme: defaultDarkColorPresentationTheme))
|
||||||
actionSheet.setItemGroups([
|
actionSheet.setItemGroups([
|
||||||
ActionSheetItemGroup(items: [
|
ActionSheetItemGroup(items: [
|
||||||
ActionSheetButtonItem(title: strongSelf.presentationData.strings.Paint_ClearConfirm, color: .destructive, action: { [weak actionSheet, weak self] in
|
ActionSheetButtonItem(title: strongSelf.presentationData.strings.Paint_ClearConfirm, color: .destructive, action: { [weak actionSheet, weak self] in
|
||||||
@ -1947,7 +1944,7 @@ public class DrawingScreen: ViewController, TGPhotoDrawingInterfaceController {
|
|||||||
self.dismiss.connect { [weak self] _ in
|
self.dismiss.connect { [weak self] _ in
|
||||||
if let strongSelf = self {
|
if let strongSelf = self {
|
||||||
if !strongSelf.drawingView.isEmpty {
|
if !strongSelf.drawingView.isEmpty {
|
||||||
let actionSheet = ActionSheetController(presentationData: strongSelf.presentationData)
|
let actionSheet = ActionSheetController(presentationData: strongSelf.presentationData.withUpdated(theme: defaultDarkColorPresentationTheme))
|
||||||
actionSheet.setItemGroups([
|
actionSheet.setItemGroups([
|
||||||
ActionSheetItemGroup(items: [
|
ActionSheetItemGroup(items: [
|
||||||
ActionSheetButtonItem(title: strongSelf.presentationData.strings.PhotoEditor_DiscardChanges, color: .accent, action: { [weak actionSheet, weak self] in
|
ActionSheetButtonItem(title: strongSelf.presentationData.strings.PhotoEditor_DiscardChanges, color: .accent, action: { [weak actionSheet, weak self] in
|
||||||
|
|||||||
@ -546,6 +546,7 @@ final class DrawingTextEntityView: DrawingEntityView, UITextViewDelegate {
|
|||||||
font = Font.with(size: fontSize, design: .round, weight: .semibold)
|
font = Font.with(size: fontSize, design: .round, weight: .semibold)
|
||||||
}
|
}
|
||||||
text.addAttribute(.font, value: font, range: range)
|
text.addAttribute(.font, value: font, range: range)
|
||||||
|
self.textView.font = font
|
||||||
|
|
||||||
let color = self.textEntity.color.toUIColor()
|
let color = self.textEntity.color.toUIColor()
|
||||||
let textColor: UIColor
|
let textColor: UIColor
|
||||||
|
|||||||
@ -261,7 +261,7 @@ final class TextFontComponent: Component {
|
|||||||
func update(component: TextFontComponent, availableSize: CGSize, state: EmptyComponentState, environment: Environment<Empty>, transition: Transition) -> CGSize {
|
func update(component: TextFontComponent, availableSize: CGSize, state: EmptyComponentState, environment: Environment<Empty>, transition: Transition) -> CGSize {
|
||||||
self.updated = component.updated
|
self.updated = component.updated
|
||||||
|
|
||||||
var contentWidth: CGFloat = 0.0
|
var contentWidth: CGFloat = 10.0
|
||||||
|
|
||||||
let styleSize = self.styleButtonHost.update(
|
let styleSize = self.styleButtonHost.update(
|
||||||
transition: transition,
|
transition: transition,
|
||||||
@ -273,7 +273,7 @@ final class TextFontComponent: Component {
|
|||||||
if view.superview == nil {
|
if view.superview == nil {
|
||||||
self.scrollView.addSubview(view)
|
self.scrollView.addSubview(view)
|
||||||
}
|
}
|
||||||
view.frame = CGRect(origin: CGPoint(x: -7.0, y: -7.0), size: styleSize)
|
view.frame = CGRect(origin: CGPoint(x: contentWidth - 7.0, y: -7.0), size: styleSize)
|
||||||
}
|
}
|
||||||
|
|
||||||
contentWidth += 44.0
|
contentWidth += 44.0
|
||||||
@ -291,7 +291,7 @@ final class TextFontComponent: Component {
|
|||||||
view.frame = CGRect(origin: CGPoint(x: contentWidth - 7.0, y: -7.0), size: alignmentSize)
|
view.frame = CGRect(origin: CGPoint(x: contentWidth - 7.0, y: -7.0), size: alignmentSize)
|
||||||
}
|
}
|
||||||
|
|
||||||
contentWidth += 32.0
|
contentWidth += 36.0
|
||||||
|
|
||||||
for value in component.values {
|
for value in component.values {
|
||||||
contentWidth += 12.0
|
contentWidth += 12.0
|
||||||
|
|||||||
@ -202,13 +202,19 @@ const CGFloat TGPhotoAvatarPreviewLandscapePanelSize = TGPhotoAvatarPreviewPanel
|
|||||||
[_titleLabel sizeToFit];
|
[_titleLabel sizeToFit];
|
||||||
[_wrapperView addSubview:_titleLabel];
|
[_wrapperView addSubview:_titleLabel];
|
||||||
|
|
||||||
|
NSMutableAttributedString *subtitle = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:self.item.isVideo ? TGLocalized(@"Conversation.SuggestedVideoText") : TGLocalized(@"Conversation.SuggestedPhotoText"), _senderName]];
|
||||||
|
[subtitle addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, subtitle.string.length)];
|
||||||
|
[subtitle addAttribute:NSFontAttributeName value:TGSystemFontOfSize(15.0f) range:NSMakeRange(0, subtitle.string.length)];
|
||||||
|
|
||||||
|
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
|
||||||
|
paragraphStyle.alignment = NSTextAlignmentCenter;
|
||||||
|
paragraphStyle.lineSpacing = 5.0f;
|
||||||
|
[subtitle addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, subtitle.string.length)];
|
||||||
|
|
||||||
_subtitleLabel = [[UILabel alloc] init];
|
_subtitleLabel = [[UILabel alloc] init];
|
||||||
|
_subtitleLabel.attributedText = subtitle;
|
||||||
_subtitleLabel.backgroundColor = [UIColor clearColor];
|
_subtitleLabel.backgroundColor = [UIColor clearColor];
|
||||||
_subtitleLabel.font = TGSystemFontOfSize(14.0f);
|
|
||||||
_subtitleLabel.textColor = [UIColor whiteColor];
|
|
||||||
_subtitleLabel.numberOfLines = 2;
|
_subtitleLabel.numberOfLines = 2;
|
||||||
_subtitleLabel.textAlignment = NSTextAlignmentCenter;
|
|
||||||
_subtitleLabel.text = [NSString stringWithFormat:self.item.isVideo ? TGLocalized(@"Conversation.SuggestedVideoText") : TGLocalized(@"Conversation.SuggestedPhotoText"), _senderName];
|
|
||||||
if (!self.item.isVideo) {
|
if (!self.item.isVideo) {
|
||||||
[_wrapperView addSubview:_subtitleLabel];
|
[_wrapperView addSubview:_subtitleLabel];
|
||||||
}
|
}
|
||||||
@ -824,7 +830,7 @@ const CGFloat TGPhotoAvatarPreviewLandscapePanelSize = TGPhotoAvatarPreviewPanel
|
|||||||
CGSize buttonSize = CGSizeMake(MIN(referenceSize.width, referenceSize.height) - 16.0 * 2.0, 50.0f);
|
CGSize buttonSize = CGSizeMake(MIN(referenceSize.width, referenceSize.height) - 16.0 * 2.0, 50.0f);
|
||||||
[_doneButton updateWidth:buttonSize.width];
|
[_doneButton updateWidth:buttonSize.width];
|
||||||
|
|
||||||
CGSize subtitleSize = [_subtitleLabel sizeThatFits:CGSizeMake(referenceSize.width - 48.0, referenceSize.height)];
|
CGSize subtitleSize = [_subtitleLabel sizeThatFits:CGSizeMake(referenceSize.width - 96.0, referenceSize.height)];
|
||||||
|
|
||||||
switch (orientation)
|
switch (orientation)
|
||||||
{
|
{
|
||||||
@ -891,7 +897,7 @@ const CGFloat TGPhotoAvatarPreviewLandscapePanelSize = TGPhotoAvatarPreviewPanel
|
|||||||
_coverLabel.frame = CGRectMake(floor((_portraitToolsWrapperView.frame.size.width - _coverLabel.frame.size.width) / 2.0), CGRectGetMaxY(_scrubberView.frame) + 6.0, _coverLabel.frame.size.width, _coverLabel.frame.size.height);
|
_coverLabel.frame = CGRectMake(floor((_portraitToolsWrapperView.frame.size.width - _coverLabel.frame.size.width) / 2.0), CGRectGetMaxY(_scrubberView.frame) + 6.0, _coverLabel.frame.size.width, _coverLabel.frame.size.height);
|
||||||
|
|
||||||
_titleLabel.frame = CGRectMake(screenEdges.left + floor((referenceSize.width - _titleLabel.frame.size.width) / 2.0), screenEdges.top + floor((44.0 - _titleLabel.frame.size.height) / 2.0), _titleLabel.frame.size.width, _titleLabel.frame.size.height);
|
_titleLabel.frame = CGRectMake(screenEdges.left + floor((referenceSize.width - _titleLabel.frame.size.width) / 2.0), screenEdges.top + floor((44.0 - _titleLabel.frame.size.height) / 2.0), _titleLabel.frame.size.width, _titleLabel.frame.size.height);
|
||||||
_subtitleLabel.frame = CGRectMake(screenEdges.left + floor((referenceSize.width - _subtitleLabel.frame.size.width) / 2.0), screenEdges.bottom - 56.0 - buttonSize.height - subtitleSize.height - 16.0, subtitleSize.width, subtitleSize.height);
|
_subtitleLabel.frame = CGRectMake(screenEdges.left + floor((referenceSize.width - _subtitleLabel.frame.size.width) / 2.0), screenEdges.bottom - 56.0 - buttonSize.height - subtitleSize.height - 20.0, subtitleSize.width, subtitleSize.height);
|
||||||
|
|
||||||
_cancelButton.frame = CGRectMake(screenEdges.left + 16.0, screenEdges.top + floor((44.0 - _cancelButton.frame.size.height) / 2.0), _cancelButton.frame.size.width, _cancelButton.frame.size.height);
|
_cancelButton.frame = CGRectMake(screenEdges.left + 16.0, screenEdges.top + floor((44.0 - _cancelButton.frame.size.height) / 2.0), _cancelButton.frame.size.width, _cancelButton.frame.size.height);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user