为UIView创建添加边框的子类的步骤是什么?

时间:2016-10-17 08:58:09

标签: ios swift uiview subclassing

在我目前的项目中,我经常创建一个UIView来在视图上放置一个灰色矩形。我通常首先在布局上放置白色视图,然后在 URL url = new URL("http://url"); HttpURLConnection connection = (HttpURLConnection) url .openConnection(); connection.setDoOutput(true); connection.setDoInput(true); connection.setRequestMethod(method); connection.setUseCaches(false); connection.setInstanceFollowRedirects(true); connection.setRequestProperty("Accept-Charset", String_UTF_8); connection.setRequestProperty("contentType", String_UTF_8); connection.connect(); PrintWriter out = new PrintWriter(newOutputStreamWriter(connection.getOutputStream(),String_UTF_8)); out.println(json); out.close(); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), String_UTF_8)); String lines; while ((lines = reader.readLine()) != null) { lines = new String(lines.getBytes()); sb.append(lines); } reader.close(); connection.disconnect(); 中设置所有边框。现在我决定通过编写一个自动设置视图边框的子类来加快速度,然后将所有这些视图设置为使用该子类。但我不知道将此代码放在子类的哪个位置:

viewDidLoad()

我把它放在self.layer.borderWidth = 2; self.layer.borderColor = UIColor.grayColor().CGColor; 上吗?我是否需要覆盖UIView的每个override init()版本?或者有更好的方法吗?

感谢。

PS:如果还有任何方法可以立即在故事板设计时显示边框(我认为它与init有关,但我根本不了解它),我将非常感激!

修改

从接受的答案中,我得到了这个答案:https://stackoverflow.com/a/33721647/3003927基本上是这样的:

drawable

2 个答案:

答案 0 :(得分:1)

您需要创建UIView的子类,并根据您在此类中的需要声明IBInspectable属性。

请尝试以下链接作为示例:

http://nshipster.com/ibinspectable-ibdesignable/

https://www.captechconsulting.com/blogs/ibdesignables-in-xcode-6-and-ios-8

答案 1 :(得分:0)

这里有一个非常详细的答案:

Proper practice for subclassing UIView?

基本上,你应该覆盖:

init?(coder aDecoder: NSCoder)init(frame: CGRect)以及awakeFromNib()。只需从你设置边框的地方调用另一个函数。