2016-03-03 11 views
12

जैसा कि हम जानते हैं, टेबल व्यू विभाजक इतना पतला और सुंदर है। कभी-कभी हमें स्टोरीबोर्ड या निब में कुछ विभाजक रेखा बनाना होता है, न्यूनतम संख्या 1 होती है, लेकिन असल में लाइन अपेक्षा की तुलना में बहुत मोटी दिखाई देती है।
मेरा प्रश्न स्टोरीबोर्ड में 1px लाइन को आकर्षित करने का तरीका है?कहानी में 1px लाइन कैसे आकर्षित करें?

+0

संभावित डुप्लिकेट [वास्तविक 1-पिक्सेल लाइन, आईओएस 7 ड्रा करें) (http://stackoverflow.com/questions/22745522/draw-a-genuine-1-pixel-line-ios7) – iSkore

+1

[इस समाधान को आजमाएं] (http: // stackoverflow।कॉम/ए/26868504/1219956) वास्तविक 1 पिक्सेल ऊंचाई रेखा के लिए, और इन बिंदुओं के बाकी हिस्सों की तरह 1 बिंदु ऊंचाई रेखा नहीं है – Fonix

+0

सभी उत्तरों के लिए धन्यवाद। सभी मेरी मदद करते हैं, और मुझे कई तरह से पता चला, आखिरकार मुझे लगता है कि फॉनिक्स और बच्चेऑरफ्यूचर का जवाब मेरे लिए काम करता है। –

उत्तर

4

मैं अपनी बात भी, अंत में मैं जिस तरह से यह पता लगाने मिला है।
हम जानते हैं, अगर हम एक रेखा खींच और कोड से ऊंचाई निर्धारित करते हैं, हम ऊंचाई के बराबर सेट कर सकते हैं (1.0/[UIScreen mainScreen] .scale)।
लेकिन यहां, आप स्टोरीबोर्ड में आकर्षित करना चाहते हैं।
वनपैक्सलाइन के रूप में आपकी मांग के आधार पर मेरा तरीका उप-वर्ग UIView या UIImageView है। OnePXLine कक्षा में, नीचे की तरह layoutSubviews ओवरराइड:

- (void)layoutSubviews { 
    [super layoutSubviews]; 
    CGRect rect = self.frame; 
    rect.size.height = (1/[UIScreen mainScreen].scale); 
    self.frame = rect; 
} 

और आप उपयोग के द्वारा स्टोरीबोर्ड में 1 पिक्सल लाइन इस वर्ग आकर्षित कर सकते हैं।
गुडलक!

1

आप इस के लिए किसी भी UIControl/UIElement में पसंद करते हैं और 1

के रूप में ऊंचाई बदलने आप 1 अंक इस का उपयोग करना चाहते हैं तो कर सकते हैं - 1.0/UIScreen.mainScreen().scale

- यदि आप इस का उपयोग करें 1pixel करना चाहते 1

ऑब्जेक्टिव-सी

UIView *LineView=[[UIView alloc]initWithFrame:CGRectMake(0, 50, self.view.frame.size.width, 1)]; // customize the frame what u need 
[LineView setBackgroundColor:[UIColor yellowColor]]; //customize the color 
[self.view addSubview:LineView]; 

स्विफ्ट

var LineView=UIView(frame: CGRectMake((0, 50, self.view.frame.size.width, 1)) 
LineView.backgroundColor=UIColor.yellowColor() 
self.view.addSubview(LineView) 

अगर आप एक अधिक जानकारी देखने के इस once

+0

यह तकनीकी रूप से 1 पीएक्स ऊंचाई नहीं होगा, लेकिन 1 pt ऊंचाई रेखा होगी, क्योंकि डिस्प्ले घनत्व के आधार पर, @ 2x डिवाइस पर यह वास्तव में उदाहरण के लिए 2 पिक्सेल मोटा होगा, लेकिन शायद ओपी वास्तव में 1 पिक्सेल ऊंचाई रेखा नहीं चाहता लेकिन 1 pt ऊंचाई – Fonix

+0

@Fonix - अद्यतन उत्तर की जांच करें –

1

आप दृश्य फ्रेम के लिए नाव मूल्य प्रदान कर सकते हैं चाहता हूँ। तो आप क्या कर सकते हैं किसी भी दृश्य (योग्य, टेक्स्टव्यू, व्यू, टेक्स्टफील्ड) लेते हैं और 0.4f या स्वयं चौड़ाई से मेल खाने के लिए प्रोग्रामिंग और चौड़ाई के रूप में ऊंचाई असाइन करते हैं।

lable.frame = CGRectMake(0,0,width of self.view,0.4f); 
2

यह आपको मदद मिलेगी आप स्विफ्ट में कोडिंग कर रहे हैं:

func lineDraw(viewLi:UIView) 
    { 
      let border = CALayer() 
      let width = CGFloat(1.0) 
      border.borderColor = UIColor(red: 197/255, green: 197/255, blue: 197/255, alpha: 1.0).CGColor 
      border.frame = CGRect(x: 0, y: viewLi.frame.size.height - width, width: viewLi.frame.size.width, height: viewLi.frame.size.height) 
      border.borderWidth = width 
      viewLi.layer.addSublayer(border) 
      viewLi.layer.masksToBounds = true 
    } 
1

cellForRowAtIndex

UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, width, 1)]; 
separatorLineView.backgroundColor = [UIColor colorWithRed:242/255.0f green:222/255.0f blue:52/255.0f alpha:1.0]; 
[cell.contentView addSubview:separatorLineView]; 
0

Xcode 9 स्विफ्ट में यह प्रयास करें: आप स्टोरीबोर्ड UIView का उपयोग करने में 1px लाइन के साथ एक पतली विभाजक जोड़ सकते हैं।

आकार इंस्पेक्टर के तहत, बस ऊंचाई 1, चौड़ाई उदाहरण के लिए 360.

enter image description here

एप्पल प्रलेखन के लिए UIView पर निर्धारित किया है।

संबंधित मुद्दे