graghview's People
graghview's Issues
コールバックパターンによる親子関係
enumのInt型
これIntの型宣言しているのはなぜ?
Labelのfont sizeを自動調整
labelの大きさに合わせてフォントサイズを自動調整したいです。
またその逆の、テキストの領域を求めてからlabelのサイズを決める方法も知りたいです。
Dateパラメータ
度々Dateっていう名前を見るんだけど、これはx軸のこと?
GraghViewCell
まず、UITableViewCell
, UICollectionViewCell
のサブクラス以外でcellという名前をつけるのは良くないかな。
仕様
コードの構文は全体的に良さげ。かけるようになってきたね。
あとは仕様とか軽くまとめてもらうと、設計とかの指摘はできそう。
ライブラリ
類似ライブラリとかは確認したほうがいいかな。
どんな実装になってるかとか、この機能を実現するためにどんな設計をしてるかとかわかるし。
GrapghだったらChartsとか有名かも
Stract名
// GraghViewCellのレイアウトを決定するためのデータ
struct GraghViewCellLayoutOptions {
// MARK: Shared
// cellAreaHeight / frame.height
var barAreaHeightRate: CGFloat = 0.8
// maxGraghValueRate / maxBarAreaHeight
var maxGraghValueRate: CGFloat = 0.8
// cell width
var cellAreaWidth: CGFloat = 50
// if over label is hidden
var valueLabelIsHidden: Bool = false
// MARK: Only Bar
// bar.width / rect.width
var barWidthRate: CGFloat = 0.5
// Bar Color
var barColor = UIColor.init(red: 1.0, green: 0.7, blue: 0.7, alpha: 1.0)
// Label backgroundColor
var labelBackgroundColor = UIColor.init(white: 0.95, alpha: 1.0)
// Gragh backgroundColor
var GraghBackgroundColor = UIColor.init(white: 0.9, alpha: 1.0)
// MARK: Only Round
// round size / cellAreaWidth
var roundSizeRate: CGFloat = 0.1
// round color
var roundColor = UIColor.init(red: 0.7, green: 0.7, blue: 1.0, alpha: 1.0)
// if round is hidden
var onlyPathLine: Bool = false
// MARK: Only Jaggy
// jaggy color
var jaggyColor = UIColor.init(red: 1.0, green: 1.0, blue: 0.6, alpha: 1.0)
}
// GraghViewCellsに付加するViewsのレイアウトを決定するためのデータ
struct GraghLayoutOptions {
// MARK: Comparison Value
var comparisonLabelBackgroundColor = UIColor.lightGray.withAlphaComponent(0.7)
var comparisonLineColor = UIColor.red
var comparisonLineWidth: CGFloat = 1
// MARK: Round Path
var roundPathWidth: CGFloat = 2
// MARK: Average Value
var avarageLabelBackgroundColor = UIColor.init(red: 0.8, green: 0.7, blue: 1, alpha: 0.7)
var averageLineColor = UIColor.init(red: 0.7, green: 0.6, blue: 0.9, alpha: 1)
var averageLineWidth: CGFloat = 1
}
これらの構造体はGraghView
の中に定義されてるから、少し抽象的な命名でいい気がする。
CellLayoutOptions
と LayoutOptions
でいい気がするな.cellって名前も...だけどそれは別issueで
UIColorの管理
参照Koyomi/UIColorExtension.swift
UIColorはhexで生成できるようなextensionを作成して定数として管理しておいたほうが、管理しやすい
sample
class Parent {
var child = Child()
func registerClosure() {
child.callback = { number in
print("Number \(number)")
}
}
}
class Child {
var callback: ((Int) -> ())?
var frame: CGRect = .zero
func call() {
callback?(3)
}
}
let p = Parent()
p.registerClosure()
p.child.call()
マイナーversionリリース
今日中にひとまずリリースしたいです。
変数?定数
// GraghViewCellsに付加するViewsのレイアウトを決定するためのデータ
struct GraghLayoutOptions {
// MARK: Comparison Value
var comparisonLabelBackgroundColor = UIColor.lightGray.withAlphaComponent(0.7)
var comparisonLineColor = UIColor.red
var comparisonLineWidth: CGFloat = 1
// MARK: Round Path
var roundPathWidth: CGFloat = 2
// MARK: Average Value
var avarageLabelBackgroundColor = UIColor.init(red: 0.8, green: 0.7, blue: 1, alpha: 0.7)
var averageLineColor = UIColor.init(red: 0.7, green: 0.6, blue: 0.9, alpha: 1)
var averageLineWidth: CGFloat = 1
}
質問だけどここら辺は変数で可読性とかまとまりを持たせるために、stractでまとめてる感じ?
親子関係
関数ジャンプ
// MARK: Only Bar
これ
//MARK: -
じゃないとジャンプできなくない?
refactoring
GraghView.swift
ここはまとめていい気がする
enumのcase
enum GraghViewContetOffset {
case atMinimumDate, atMaximizeDate
}
でいい気がする
enum GraghViewContetOffset {
case minimumDate, maximizeDate
}
framework
ライブラリ化しちゃえb
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.