按下按钮时如何添加上标?

时间:2019-06-19 08:51:57

标签: ios swift uilabel

我正在尝试制作一个计算器应用程序,当前所有输入的数字都显示在UILabel上。当按下“电源(^)”按钮时,我希望它使以下文本成为先前输入内容的上标(因此,我希望它较小并且在右上角)。因此,如果我输入“ 2”,然后输入“ ^”,然后输入“ 0”,则我希望它显示2°(2等于0的幂)。

我什至没有尝试什么,因为我什至不知道从哪里开始,但是我想也许我可以创建一个新的UILabel,它较小,位于输入的最后一段文本的右上角,但是我不知道。不知道如何将小UILabel放置在哪里(我不知道如何获取最后一个字母/数字的位置)。

我对除法有同样的问题,当按下除法时,我希望它是分数形式,分子中有文字,水平线,然后是分母下方的文字。但是我有一种感觉,如果我能弄清楚如何解决这两个问题,我将能够解决这两个问题。

这是我的应用当前的样子>> enter image description here

2 个答案:

答案 0 :(得分:1)

import matplotlib.pyplot as plt
import cv2
import numpy as np

colors = [
    (0, 0, 255),      # r
    (0, 255, 0),      # g
    (255, 0, 0),      # b
    (0, 156, 255),    # o
    (128, 128, 128),  # k
    (0, 255, 255)     # y
]

img_size = 75
size = 5

def center_generate(objects):
    while True:
        pas = True
        center = np.random.randint(0+size, img_size - size, 2)        
        if len(objects) > 0:
            for name, c, shape in objects:
                """this condition checks if the new object generated is not completely covered by the already 
            generated objects"""
                if ((center - c) ** 2).sum() < ((size * 2) ** 2):
                    pas = False
        if pas:
            return center

def build_dataset(dataset_type, loopnumber):
    objects = []
    img = np.ones((img_size, img_size, 3)) * 255
    for color_id, color in enumerate(colors):
        center = center_generate(objects)
        if random.random() < 0.5:
            start = (center[0]-size, center[1]-size)
            end = (center[0]+size, center[1]+size)
            img = cv2.rectangle(img, start, end, color, -1)
            plt.imshow(img)
            objects.append((color_id, center, 'r'))
        else:
            center_ = (center[0], center[1])
            img = cv2.circle(img, center_, size, color, -1)
            plt.imshow(img)
            objects.append((color_id, center, 'c'))

        if dataset_type == 'test':
            plt.imsave('..\\img\\test\\img_' + str(loop) + '.jpeg', img)
        else:
            plt.imsave('..\\img\\train\\img_' + str(loop) + '.jpeg', img)

答案 1 :(得分:0)

我认为您不需要其他UILabel。以下链接中对此有一个答案:How to use subscript and superscript in Swift