在我目前的项目中,我经常创建一个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
答案 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()
。只需从你设置边框的地方调用另一个函数。