草庐IT

ios - 文本字段中的 Border 和 Padding 样式不适用于 swift5

coder 2024-01-17 原文

我目前正在处理 iOS 元素。我的问题是 textfield 中的任何内容都没有改变我。很难找到问题的答案。我应该如何更改它?

import Foundation
import UIKit

class passwrodCheckAlertController : UIViewController {


    @IBOutlet weak var passModalAlert: UITextView!

    @IBOutlet weak var passTextfield: UITextField!
    @IBOutlet weak var cancelbutton: UIButton!
    @IBOutlet weak var okButton: UIButton!



//    let color = UIColor.init(red: 0, green: 0, blue: 0, alpha: 0.5)
    let color = UIColor.red
    let insets = UIEdgeInsets.init(top: 31.7, left: 0.0, bottom: 0.0, right: 0.0)

    override func viewDidLoad() {
        super.viewDidLoad()
        self.passModalAlert.layer.cornerRadius = 8
        self.passTextfield.layer.cornerRadius = 3
        self.passTextfield.layer.borderColor = color.cgColor
        self.passModalAlert.textContainerInset = insets
        changeViewFont()
    }

}

class PaddingTextField : UITextField {

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func editingRect(forBounds bounds: CGRect) -> CGRect {
        bounds.inset(by: UIEdgeInsets(top: 0, left: 100, bottom: 0, right: 15))
        return bounds
    }

}

主 Storyboard

画面不变

CornerRadius 在 TextView 中效果很好。

提前致谢


编辑开始

我听取了评论并使用了leftview。差距问题就解决了。但我的 Border 样式仍然没有改变。

        let paddingView = UIView(frame: CGRect.init(x: 0, y: 0, width: 10, height: self.passTextfield.frame.height))
        self.passTextfield.leftView = paddingView
        self.passTextfield.leftViewMode = .always
        self.passTextfield.layer.cornerRadius = 3
        self.passTextfield.layer.borderColor = color.cgColor
        self.passModalAlert.textContainerInset = insets

Border style doesn't change.


编辑第二个起点

@IBOutlet weak var passTextfield: PaddingTextField!
...
class PaddingTextField : UITextField {

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func awakeFromNib() {
        //set your border style here
        self.layer.cornerRadius = 3
        self.layer.borderColor = UIColor.red.cgColor
    }

    override func editingRect(forBounds bounds: CGRect) -> CGRect {
        bounds.inset(by: UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 15))
        return bounds
    }

}

But this has not changed anything changed.

最佳答案

您的问题似乎是您在创建 socket 时的设置,您应该选择 PaddingTextField 而不是 UITextField,因为 UITextField 是一个父类(super class),并且对其子项具有的附加功能一无所知。

删除 IBOutlet

@IBOutlet weak var passTextfield: UITextField!

并重新创建它应该如下所示:

@IBOutlet weak var passTextfield: PaddingTextField!

希望这对您有所帮助。

关于边界:

class PaddingTextField : UITextField {

   override func awakeFromNib() {
       //set your border style here
       self.layer.cornerRadius = 3
       // Add borderWidth as otherwise you are having a 0 point wide border
       self.layer.borderWidth = 5 
       self.layer.borderColor = UIColor.red.cgColor
   }

   override func editingRect(forBounds bounds: CGRect) -> CGRect {
       bounds.inset(by: UIEdgeInsets(top: 0, left: 100, bottom: 0, right: 15))
       return bounds
   }

}

按预期运行:

关于ios - 文本字段中的 Border 和 Padding 样式不适用于 swift5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57865685/

有关ios - 文本字段中的 Border 和 Padding 样式不适用于 swift5的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby-on-rails - 如何验证非模型(甚至非对象)字段 - 2

    我有一个表单,其中有很多字段取自数组(而不是模型或对象)。我如何验证这些字段的存在?solve_problem_pathdo|f|%>... 最佳答案 创建一个简单的类来包装请求参数并使用ActiveModel::Validations。#definedsomewhere,atthesimplest:require'ostruct'classSolvetrue#youcouldevencheckthesolutionwithavalidatorvalidatedoerrors.add(:base,"WRONG!!!")unlesss

  3. ruby-on-rails - form_for 中不在模型中的自定义字段 - 2

    我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢

  4. ruby-on-rails - 在 Rails 和 ActiveRecord 中查询时忽略某些字段 - 2

    我知道我可以指定某些字段来使用pluck查询数据库。ids=Item.where('due_at但是我想知道,是否有一种方法可以指定我想避免从数据库查询的某些字段。某种反拔?posts=Post.where(published:true).do_not_lookup(:enormous_field) 最佳答案 Model#attribute_names应该返回列/属性数组。您可以排除其中一些并传递给pluck或select方法。像这样:posts=Post.where(published:true).select(Post.attr

  5. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  6. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  7. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  8. ruby-on-rails - Sphinx - 何时对字段使用 'has' 和 'indexes' - 2

    我几天前在我的ruby​​onrails2.3.2上安装了Sphinx和Thinking-Sphinx,基本搜索效果很好。这意味着,没有任何条件。现在,我想用一些条件过滤搜索。我有公告模型,索引如下所示:define_indexdoindexestitle,:as=>:title,:sortable=>trueindexesdescription,:as=>:description,:sortable=>trueend也许我错了,但我注意到只有当我将:sortable=>true语法添加到这些属性时,我才能将它们用作搜索条件。否则它找不到任何东西。现在,我还在使用acts_as_tag

  9. Ruby - 如何处理子类意外覆盖父类(super class)私有(private)字段的问题? - 2

    假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案

  10. ruby-on-rails - 如何为空白字段编写 rspec? [Rails3.1] - 2

    我使用rails3.1+rspec和factorygirl。我对必填字段(validates_presence_of)的验证工作正常。我如何让测试将该事实用作“成功”而不是“失败”规范是:describe"Addanindustrywithnoname"docontext"Unabletocreatearecordwhenthenameisblank"dosubjectdoind=Factory.create(:industry_name_blank)endit{shouldbe_invalid}endend但是我失败了:Failures:1)Addanindustrywithnona

随机推荐