2016-08-04 84 views
3

Mein UIActivityViewController präsentiert ein Bild mit Text darunter:Remove Zeilenumbruch in UIActivityViewController

let objectsToShare: [AnyObject] = [anImage, someText] 
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil) 

Es ist das Hinzufügen eines unerwünschten Zeilenumbruch zwischen dem Bild und dem Text, wenn geteilt (rot markiert):

unwanted UIActivityViewController line break

Gibt es eine Möglichkeit, es zu entfernen? FYI someText enthält keine fest codierten Zeilenumbrüche. Ich bin unparteiisch für eine Objective-C oder Swift Antwort darauf.

+0

Es sieht nur so aus, wie Apple denkt, dass es richtig ist und wahrscheinlich ist es nicht möglich, dieses Verhalten zu ändern. Wie auch immer, viel Glück, eine Antwort oder einen Workaround zu finden! – wirrwarr

+0

Nur ein Schuss in die Dunkelheit. Haben Sie einen negativen Y-Positionswert für "someText" probiert? Ich weiß, es ist ein bisschen hacky, aber es könnte funktionieren. –

Antwort

2

Da Sie nicht wirklich die Kontrolle über das Rendern der Aktivitäten haben, sondern nur die Bereitstellung, haben Sie keine Kontrolle über die Auffüllung, die zwischen dem Inhalt und den Aktivitäten platziert wird.

Ich würde meinem Designer/Klient/Chef erklären, dass es außerhalb Ihrer Kontrolle ist, leider, und file ein Rdar, wenn Sie wirklich denken, dass das etwas ist, was Sie kontrollieren sollten (ich glaube nicht, dass es persönlich ist) .

Hacky und nicht empfohlen ... Seit UIActivityViewController ein UIViewController ist, könnte man, glaube ich, eine Unterklasse es und durchlaufen die Subviews im .view dieses Objekt die richtige Ansicht/Einschränkung zu finden und stell es selbst ein, aber das ist wirklich nicht etwas, dem ich nahe käme, selbst wenn mein Job davon abhing. Es nimmt so viel davon an, wie Apple diese Ansichtshierarchie implementiert hat, dass Sie eine Geisel des Schicksals sind, dass es in jedem zukünftigen iOS-Update fehlschlägt, wo Apple sich entschieden hat, diese Klasse zu überarbeiten.