UITableView को संपादित करते समय "-" (डिलीट) बटन को छिपाने का कोई तरीका है


97

मेरे iPhone ऐप पर, मेरे पास संपादन मोड में एक UITableView है, जहां उपयोगकर्ता को केवल उन पंक्तियों को फिर से चालू करने की अनुमति है, जिन्हें कोई हटाने की अनुमति नहीं दी गई है।

तो क्या कोई ऐसा तरीका है जहां मैं छिपा सकता हूं "-" टेबल व्यू से लाल बटन। कृपया मुझे बताओ।

धन्यवाद

जवाबों:


258

यहाँ मेरा पूरा समाधान है, सेल के इंडेंटेशन (0left align) के बिना!

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
    return UITableViewCellEditingStyleNone; 
}

- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}


- (BOOL)tableView:(UITableView *)tableview canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

43

स्विफ्ट 3 केवल आवश्यक फ़न के साथ स्वीकृत उत्तर के बराबर:

func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool {
    return false
}

func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
    return .none
}

4

यह इंडेंटेशन रोकता है:

- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}

3

मुझे एक ऐसी ही समस्या का सामना करना पड़ा जहाँ मैं चाहता था कि कस्टम चेकबॉक्स एडिट मोड में दिखें लेकिन '(-)' डिलीट बटन नहीं।

स्टीफन का जवाब ने मुझे सही दिशा में आगे बढ़ाया।

मैंने एक टॉगल बटन बनाया और इसे सेल में एक editAccessoryView के रूप में जोड़ा और इसे एक विधि पर वायर्ड किया।

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    ....
    // Configure the cell...

    UIButton *checkBoxButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 40.0f, 32.0f)];
    [checkBoxButton setTitle:@"O" forState:UIControlStateNormal];
    [checkBoxButton setTitle:@"√" forState:UIControlStateSelected];
    [checkBoxButton addTarget:self action:@selector(checkBoxButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

    cell.editingAccessoryType = UITableViewCellAccessoryCheckmark;
    cell.editingAccessoryView = checkBoxButton;

    return cell;
}

- (void)checkBoxButtonPressed:(UIButton *)sender {
    sender.selected = !sender.selected;
}

इन प्रतिनिधि विधियों को लागू किया

- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleNone;
}

0

जब आप केवल संपादन करते समय (-) डॉट को छुपाना चाहते हैं, लेकिन आप अपने द्वारा कार्यान्वित उपयोगकर्ताओं के लिए हटाए जाने वाले कार्यशीलता को रखना चाह सकते हैं, जैसे कि आपके UITableViewDelegateप्रोटोकॉल अनुरूप वर्ग में।

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (self.editing) return UITableViewCellEditingStyleNone;
    return UITableViewCellEditingStyleDelete;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.