Skip to main content

Vertical Labels in iOS (using Objective-C)

View transformations are something you might wanna need to learn more about. While rethinking the iPad interface for his UTC Chart app, it occurred to mluton to use vertical labels. After a bit of research this is what he came up with.

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSString *string = @"Lorem Ipsum";
    UIFont *font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];

    UILabel *label = [[UILabel alloc] init];
    label.font = font;
    label.text = string;

    CGSize size = [string sizeWithAttributes:@{NSFontAttributeName:font}];
    label.frame = CGRectMake(40, 40, size.width, size.height);
    [label.layer setAnchorPoint:CGPointMake(0.0, 0.0)];
    label.transform = CGAffineTransformMakeRotation((M_PI) / 2);

    [self.view addSubview:label];
}

The frame and setAnchorPoint values can be modified to achieve desired positioning. He chose to bypass any potential autolayout/transform conflicts by creating the label programmatically and setting the frame and size values myself. No questions. No ambiguity.

The above solution and content was initially published by mluton on his own website which was left to decay and domain expiration and was recovered by projTek - an AI-powered R&D project. The GitHub repo of the original author: https://github.com/mluton 

Comments

Popular posts from this blog

The Python Code Handbook (free book with 40 code examples)

Introducing the Python Code Handbook from FreeCodeCamp that are worth your time: 1. This handbook will teach you Python for beginners through a series of helpful code examples. You'll learn basic data structures, loops, and if-then logic. It also includes plenty of project-oriented learning resources you can use to dive even deeper. (full handbook):  https://www.freecodecamp.org/news/python-code-examples-simple-python-program-example/ 2. freeCodeCamp just published this course to help you pass the Google Associate Cloud Engineer certification exam. If you want to work as a DevOps or a SysAdmin, this cert may be worth your time. You'll learn Cloud Engineering fundamentals, Virtual Private Cloud concepts, networking, Kubernetes, and High Availability Computing. (20 hour YouTube course):  https://www.freecodecamp.org/news/google-cloud-digital-leader-certification-study-course-pass-the-exam-with-this-free-20-hour-course/ 3. React Router 6 just came out a few months ago, and freeCo...

How to Use OUIEditableFrame with the OmniGroup Framework

TLDR: This blog post provides a detailed tutorial on how to implement OmniGroup’s OUIEditableFrame in an iOS project to render text with proper kerning, which cannot be achieved with standard UIKit controls due to a bug. The guide walks through creating and configuring an Xcode workspace, cloning the OmniGroup project from GitHub, adding necessary frameworks and dependencies, and writing the required view controller code. Learn to implement OmniGroup's OUIEditableFrame for proper text kerning in iOS projects with this step-by-step Xcode tutorial. Table of Contents: Introduction Create and Configure Xcode Workspace Clone the OmniGroup Project from GitHub Add the FixStringsFile Project Add OmniBase Add the Rest of the Frameworks Write View Controller Code Making It Work in iOS 5 Get Rid of the Static Analyzer Message If you need a UITextField that renders text with proper kerning you don’t have many of options. Writing al...

Integrating SwiftUI into Existing AppKit Cocoa Projects: A Step-by-Step Guide

As Apple continues to push SwiftUI as the future of app development across its platforms, many developers find themselves in a position where they need to integrate this modern framework into their existing AppKit Cocoa projects. This integration can breathe new life into older applications, allowing developers to take advantage of SwiftUI's declarative syntax and powerful features while maintaining their existing codebase. In this guide, we'll walk through the process of adding SwiftUI to an existing AppKit Cocoa project, providing you with the knowledge to modernize your macOS applications.